AnnotatedElement 接口詳解
該接口用於獲取類以及方法、字段的註解
java.lang.reflect
接口 AnnotatedElement
所有已知實現類:
AccessibleObject, Class, Constructor, Field, Method, Package
public interface AnnotatedElement
表示目前正在此 VM 中運行的程序的一個已註釋元素。該接口允許反射性地讀取註釋。由此接口中的方法返回的所有註釋都是不可變並且可序列化的。調用者可以修改已賦值數組枚舉成員的訪問器返回的數組;這不會對其他調用者返回的數組產生任何影響。
如果此接口中的方法返回的註釋(直接或間接地)包含一個已賦值的 Class 成員,該成員引用了一個在此 VM 中不可訪問的類,則試圖通過在返回的註釋上調用相關的類返回的方法來讀取該類,將導致一個 TypeNotPresentException。
類似地,如果註釋中的枚舉常量不再以枚舉類型存在,那麼試圖讀取一個已賦值的枚舉成員將導致一個 EnumConstantNotPresentException。
最後,閱讀其定義已經引起不兼容性的成員將導致 AnnotationTypeMismatchException 或 IncompleteAnnotationException。
從以下版本開始:
1.5
從以下版本開始:
1.5
方法摘要
T getAnnotation(Class<T> annotationClass)
如果存在該元素的指定類型的註釋,則返回這些註釋,否則返回 null。
Annotation[] getAnnotations()
返回此元素上存在的所有註釋。
Annotation[] getDeclaredAnnotations()
返回直接存在於此元素上的所有註釋。
boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
如果指定類型的註釋存在於此元素上,則返回 true,否則返回 false。
方法詳細信息
isAnnotationPresent:
boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
如果指定類型的註釋存在於此元素上,則返回 true,否則返回 false。此方法主要是爲了便於訪問標記註釋而設計的。
參數:
annotationClass - 對應於註釋類型的 Class 對象
返回:
如果指定註釋類型的註釋存在於此對象上,則返回 true,否則返回 false
拋出:
NullPointerException - 如果給定的註釋類爲 null
從以下版本開始:
1.5
getAnnotation:
<T extends Annotation> T getAnnotation(Class<T> annotationClass)
如果存在該元素的指定類型的註釋,則返回這些註釋,否則返回 null。
參數:
annotationClass - 對應於註釋類型的 Class 對象
返回:
如果該元素的指定註釋類型的註釋存在於此對象上,則返回這些註釋,否則返回 null
拋出:
NullPointerException - 如果給定的註釋類爲 null
從以下版本開始:
1.5
getAnnotations:
Annotation[] getAnnotations()
返回此元素上存在的所有註釋。(如果此元素沒有註釋,則返回長度爲零的數組。)該方法的調用者可以隨意修改返回的數組;這不會對其他調用者返回的數組產生任何影響。
返回:
此元素上存在的所有註釋
從以下版本開始:
1.5
getDeclaredAnnotations:
Annotation[] getDeclaredAnnotations()
返回直接存在於此元素上的所有註釋。與此接口中的其他方法不同,該方法將忽略繼承的註釋。(如果沒有註釋直接存在於此元素上,則返回長度爲零的一個數組。)該方法的調用者可以隨意修改返回的數組;這不會對其他調用者返回的數組產生任何影響。
返回:
直接存在於此元素上的所有註釋
從以下版本開始:
1.5
摘自jdk1.5 幫助文檔