一. 元註解-meta-annotation; 在JDK 1.5中提供了4個標準的用來對註解類型進行註解的註解類,我們稱之爲 meta-annotation(元註解)
@Target(EnementType.***)
表示該註解可以用於什麼地方,可能的ElementType參數有:
CONSTRUCTOR:構造器的聲明
FIELD:域聲明(包括enum實例)
LOCAL_VARIABLE:局部變量聲明
METHOD:方法聲明
PACKAGE:包聲明
PARAMETER:參數聲明
TYPE:類、接口(包括註解類型)或enum聲明
@Retention(RetentionPolucy.***)
表示需要在什麼級別保存該註解信息,設置註解在哪些時期可用-(源碼,編譯,運行)可選的RetentionPolicy參數包括:
SOURCE:註解將被編譯器丟棄
CLASS:註解在class文件中可用,但會被VM丟棄
RUNTIME:VM將在運行期間保留註解,因此可以通過反射機制讀取註解的信息
@Document
將註解包含在Javadoc中, 讓javadoc對其編譯,在文檔中生成
@Inherited
允許子類繼承父類中的註解
二. 自定義註解
使用@interface自定義註解時,自動繼承了java.lang.annotation.Annotation接口,由編譯程序自動完成其他細節。在定義註解時,不能繼承其他的註解或接口。@interface用來聲明一個註解,其中的每一個方法實際上是聲明瞭一個配置參數。方法的名稱就是參數的名稱,返回值類型就是參數的類型(返回值類型只能是基本類型、Class、String、enum)。可以通過default來聲明參數的默認值。
定義註解格式:
public @interface 註解名 {定義體}
註解參數的可支持數據類型:
1.所有基本數據類型(int,float,boolean,byte,double,char,long,short)
2.String類型
3.Class類型
4.enum類型
5.Annotation類型
6.以上所有類型的數組