1. 程式人生 > 程式設計 >Java annotation元註解原理例項解析

Java annotation元註解原理例項解析

元註解是指註解的註解。包括 @Retention @Target @Document @Inherited四種。

1. Annotation型定義為@interface,所有的Annotation會自動繼承java.lang.Annotation這一介面,並且不能再去繼承別的類或是介面.

2. 引數成員只能用public或預設(default)這兩個訪問權修飾

3. 引數成員只能用基本型別byte,short,char,int,long,float,double,boolean八種基本資料型別和String、Enum、Class、annotations等資料型別,以及這一些型別的陣列.

4. 要獲取類方法和欄位的註解資訊,必須通過Java的反射技術來獲取 Annotation物件,因為你除此之外沒有別的獲取註解物件的方法

5. 註解也可以沒有定義成員,不過這樣註解就沒啥用了

1. @Target 表示該註解目標,可能的 ElemenetType 引數包括:

ElemenetType.CONSTRUCTOR 構造器宣告
ElemenetType.FIELD 域宣告(包括 enum 例項)
ElemenetType.LOCAL_VARIABLE 區域性變數宣告
ElemenetType.METHOD 方法宣告
ElemenetType.PACKAGE 包宣告
ElemenetType.PARAMETER 引數宣告
ElemenetType.TYPE 類,介面(包括註解型別)或enum宣告

2. @Retention 表示該註解的生命週期,可選的 RetentionPolicy 引數包括

RetentionPolicy.SOURCE 註解將被編譯器丟棄
RetentionPolicy.CLASS 註解在class檔案中可用,但會被VM丟棄
RetentionPolicy.RUNTIME VM將在執行期也保留註釋,因此可以通過反射機制讀取註解的資訊

3. @Documented 指示將此註解包含在 javadoc 中

4. @Inherited 指示允許子類繼承父類中的註解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。