AnnotatedElement 帮助文档详解

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 帮助文档

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章