妳好,提問者:
?看到妳的問題我特意查了下:
壹 :Inherited 註解(這段可能有問題...)
這是壹個稍微復雜的註解類型. 它指明被註解的類會自動繼承. 更具體地說,如果定義註解時使用了 @Inherited
標記,然後用定義的註解來標註另壹個父類, 父類又有壹個子類(subclass),則父類的所有屬性將被繼承到它的子類中. 在示例7中,妳會看到使用
@Inherited 標簽的好處.
妳不需要在實現類中定義接口方法. 因為使用 @Inherited標記,這些都自動繼承了.
二:Retention註解
Retention(保留)註解說明,這種類型的註解會被保留到那個階段. 有三個值:
1.RetentionPolicy.SOURCE ——
這種類型的Annotations只在源代碼級別保留,編譯時就會被忽略
2.RetentionPolicy.CLASS ——
這種類型的Annotations編譯時被保留,在class文件中存在,但JVM將會忽略
3.RetentionPolicy.RUNTIME ——
這種類型的Annotations將被JVM保留,所以他們能在運行時被JVM或其他使用反射機制的代碼所讀取和使用.
三:@Target:
@Target說明了Annotation所修飾的對象範圍:Annotation可被用於 packages、types(類、接口、枚舉、Annotation類型)、類型成員(方法、構造方法、成員變量、枚舉值)、方法參數和本地變量(如循環變量、catch參數)。在Annotation類型的聲明中使用了target可更加明晰其修飾的目標。
作用:用於描述註解的使用範圍(即:被描述的註解可以用在什麽地方)
取值(ElementType)有:
CONSTRUCTOR:用於描述構造器
2.FIELD:用於描述域
3.LOCAL_VARIABLE:用於描述局部變量
4.METHOD:用於描述方法
5.PACKAGE:用於描述包
6.PARAMETER:用於描述參數
7.TYPE:用於描述類、接口(包括註解類型) 或enum聲明
四:@interface
?@interface是用來自定義JAVA Annotation的語法,普通的開發人員可能很少用到它,但是它的功能很強大
壹般的應用程序開發人員可能從不需要定義壹個註釋類型,但定義我們自己的註釋類型並不復雜。註釋類型的定義跟定義壹個接口相似,我們需要在 interface這個關鍵字前面加上壹個@符號,即@interface。註釋中的每壹個方法定義了這個註釋類型的壹個元素,註釋中方法的聲明中壹定不能包含參數,也不能拋出異 常;方法的返回值被限制為簡單類型、String、Class、emnus、註釋,和這些類型的數組。方法可以有壹個缺省值。