java註解學習---元註解,註解類型,註解支持元素類型,註解基礎(一)
一、JDK內置四個元註解
1、@Target 註解: 表示自定義的註解,使用的地方。
可選參數: java.lang.annotation.ElementType 中如下:
package java.lang.annotation;
public enum ElementType {
TYPE, //適用class, interface, enum
FIELD, //適用field
METHOD, //適用method
PARAMETER, //適用method上之parameter
CONSTRUCTOR, //適用constructor
LOCAL_VARIABLE, //適用局部變量
ANNOTATION_TYPE, //適用annotation型態
PACKAGE //適用package
}
補充: @Target 缺省,默認支持全部 ElementType 類型!
2、@Retention 註解:表示編譯程序如何處理自定義註解。
可選參數: java.lang.annotation.RetentionPolicy 中如下:
package java.lang.annotation;
public enum RetentionPolicy {
SOURCE, //註解不會被編譯到 .class 文件中,如: @SuppressWarnings
註解
CLASS, / 註解會被編譯到 .class文件中,但不會被JVM加載,缺省 默認這個
RUNTIME //JVM會把註解加載到內存裏,運行期間可見,所以可以通過反射讀取註解的信息。
}
3、@Documented 註解:將此註解包含在Javadoc中。
4、@Inherited 註解:允許子類繼承父類的註解。並不是說允許子註解類繼承父註解類。
補充: JDK內置四個元註解,僅用於自定義註解時,使用!
二、JDK1.5內置三個註解
1、@Override :限定子類重寫父類方法
2、@Deprecated : 標識某個方法,參數,包 等,已經過時,不建議使用!
3、@SuppressWarnings : 消除警告信息。
三、自定義註解類型
1、標記類型註解: 註解中沒有元素,稱爲標記型註解。 如: @Inherited、 @Deprecated
2、其他類型註解: 註解中定義了元素。 如: @SuppressWarnings
四、註解元素類型
1、所有基本數據類型。 如: int ,char ,boolean , 但 不能是包裝類型!
2、 java.lang.String
3、 java.lang.Class
4、 java.lang.enum
5、 java.lang.Annotation
6、以上5種類型的數組: int[],String[],Class[] 等等。
注意:註解元素類型,不支持 包裝類!
---- 繼續學習 next :
java註解學習---@Inherited註解的理解學習(四)