欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 軟件研發 > 【中培課堂】詳解Java元數據

【中培課堂】詳解Java元數據

2017-01-19 09:50:02 | 來源:中培企業IT培訓網

Java領域,選數據是一個重要的概念。中培偉業《JAVA高級開發技術實戰》培訓專家龔老師在這里對元數據相關概念進行了詳細介紹。龔老師指出,元數據從metadata一詞譯來,就是關于數據的數據的意思。越來越的開源框架都提供了元數據支持了,其實也就是注釋支持。今天系統學習一下Java注釋(Java元數據。本文內容不限于Javadoc的注釋。

1.什么是Java元數據,有什么作用

元數據,就是“關于數據的數據。功能也有很多啦。你可能用過Javadoc的注釋自動生成文檔。這就是元數據功能的一種??偟膩碚f,元數據可以用來創建文檔,跟蹤代碼的依賴性,執行編譯時格式檢查,代替已有的配置文件Hibernate也提供了注釋配置

注釋有3中基本類型

a.標記注釋 --沒有變量,只有名稱標識。例如 @annotation

b.單一值注釋 --在標記注釋的基礎上提供一段數據。如 @annotation(“data”)

c.完整注釋 --可以包括多個數據成員,每個數據成員由名稱和值構成。

@annotation(val1="data1",val2="data2")

2.Java注釋

Java中提供個內置注釋類型

a. Override ,只能用于方法不能用于類,包聲明或者其他構造

作用:可以保證編譯時候Override函數的聲明正確性

用法:@Override

public void fun(){..}

b.Deprecated 同樣只能作用與方法

作用:對不應再使用的方法進行注解

用法:@Deprecated public void fun{...} //它們說這個注釋跟函數要同一行

c.SupressWarnings 可以注釋一段代碼

作用:關閉特定的警告信息,例如你在使用泛型的時候未指定類型

用法: @SupressWarnings(value={"unchecked"})

..代碼

Java中還提供了四種元注釋,專門負責注釋其他的注釋

@Target 表示該注釋可以用于什么地方。可用的ElementType參數包括:

CONSTRUCTOR : 構造器的聲明

FIELD : 域聲明包括enum實例

LOCAL_VARIABLE : 局部變量聲明

METHOD : 方法聲明

PACKAGE : 包聲明

PARAMETER : 參數聲明

TYPE : 類、接口 包括注解類型) enum聲明

@Retention 表示需要在什么級別保存該注釋信息??蛇x的RetentionPoicy參數包括:

SOURCE : 注釋將被編譯器丟掉

CLASS : 注釋在class文件中可用,但會被VM丟棄

RUNTIME : VM將在運行時也保留注釋,因此可以通過反射機制讀取注釋的信息。

@Documented 將注釋包含在JavaDoc

@Inheried 允許子類繼承父類中的注釋。

3. Java中定義自己的注釋

Java語言支持一種新的類型——注釋類型(annotation type),跟普通類差不多,在類中以符號( @ )的形式注釋其他 Java 代碼

下面將通過一個簡單的例子來實現(代碼是Brett McLaughlin

@interface 申明

i.簡單的注釋類型

package com.oreilly.tiger.ch06; /** * Marker annotation to indicate that a method or class *still in progress. */ public @interface InProgress { }

ii.使用定制的注釋類型

@com.oreilly.tiger.ch06.InProgress public void calculateInterest(float amout,float rate) { //Need to finish this method later }

iii.添加成員

package com.oreilly.tiger.ch06; /** * Marker annotation to indicate that a method or class * is still in progress. */ public @interface InProgress { String value(); } @com.oreilly.tiger.ch06.InProgress @TODO("Figure out the amount of interest per month") //或者@TODO(value="Figure out the amount of interest per month") public void calculateInterest(float amount,float rate) { }

iv.設置默認值

package com.oreilly.tiger.ch06; public @interface GroupTODO { public enum Serverity { CRITICAL,IMPORTANT,IRIVIAL,DOCMENTATION }; Severity severity() default Severity.IMPORTANT; String item (); String assignedTo(); String dateAssigned(); } }

v.使用默認值

@com.oreilly.tiger.ch06.InProgress @GroupTODO( item="Figure out the amount of interest per month", assignedTo = "Brett McLaughlin", dateAssigned = "08/04/2004" ) public void calculateInterest(float amount, float rate) { //Need to finish this method later }

vi.改寫默認值

@com.oreilly.tiger.ch06.InProgress @GroupTODO { severity = GroupTODO.Severity.DOCUMENTATION, item = "Need to explain how this rather unusal method works", assignedTo = "Jon Stevens", dateAssigned = "07/30/2004" }

標簽: Java開發
主站蜘蛛池模板: 男人j放进女人p全黄 | 亚洲国产精品久久久久爰色欲 | 给我免费播放片在线中国 | 亚洲欧洲精品成人久久av18 | 男女猛烈无遮掩视频免费软件 | 人与嘼交av免费 | 不卡无在线一区二区三区观 | 久久人人爽人人人人片| 第一福利导航导航 | 久久综合给合综合久久 | 老子影院午夜精品无码 | 妺妺窝人体色WWW网 日韩欧美精品在线 | 男人的天堂久久精品 | 好男人在线视频 | A片在线免费观看 | 日本天堂免费观看 | 欧美日韩一区二区三区视频 | 岛国AAAA级午夜福利片 | 性色黄 | 伊人久久大香线蕉av网站 | 国产精品夜夜嗨 | 欧美又粗又大BBBBXXXX | 中文在线免费二区三区 | 亚洲AV永久无码精品国产精 | 精品一区二区国产在线观看 | 久久久久亚洲AV无码A片 | 日本3级片 | 亚洲欧美成人一区二区在线 | 国产精品扒开腿做爽爽爽A片小 | 亚洲日韩一区二区 | 欧美综合日韩 | 色偷偷久久一区二区三区 | 91传媒麻豆激情在线观看 | 中文无码高潮到痉挛在线视频 | 噜噜噜躁狠狠躁狠狠精品视频 | 狠狠久久永久免费观看 | 一个人看www在线视频 | 亚洲AV无码乱码在线观看 | 欧美人c交zoozooxx | 免费无码午夜福利片69 | 国产高清吃奶成免费视频网站 |