- 所有父级接口:
AnnotatedConstruct
- 所有已知的子接口:
ExecutableElement,ModuleElement,PackageElement,Parameterizable,QualifiedNameable,RecordComponentElement,TypeElement,TypeParameterElement,VariableElement
表示程序元素,例如模块、包、类或方法。每个元素代表一个编译时语言级构造(而不是,例如,虚拟机的运行时构造)。
应使用 equals(Object) 方法比较元素。无法保证任何特定元素将始终由同一对象表示。
要基于 Element 对象的类实现操作,请使用 游客 或使用 getKind() 方法的结果。使用 instanceof 是 not 必然是确定此建模层次结构中对象的有效类的可靠习惯用法,因为实现可以选择让单个对象实现多个 Element 子接口。
- 自从:
- 1.6
- 参见:
-
方法总结
修饰符和类型方法描述<R,P> R accept(ElementVisitor<R, P> v, P p) 将访问者应用于此元素。asType()返回此元素定义的类型。boolean如果参数表示与this相同的元素,则返回true,否则返回false。<A extends Annotation>
AgetAnnotation(Class<A> annotationType) 如果这样的注释是 present ,则返回此构造的指定类型的注解,否则返回null。List<? extends AnnotationMirror>返回此构造上的 directly present 注释。<A extends Annotation>
A[]getAnnotationsByType(Class<A> annotationType) 返回带有此构造的 associated 注释。返回松散地说直接包含在该元素中的元素。返回包含此元素的最里面的元素,松散地说,包含在其中。getKind()返回此元素的kind。返回此元素的修饰符,不包括注解。返回此元素的简单(非限定)名称。inthashCode()遵守Object.hashCode的总合同。
-
方法详情
-
asType
TypeMirror asType()返回此元素定义的类型。- 返回:
- 此元素定义的类型
- 参见:
-
getKind
ElementKind getKind()返回此元素的kind。- 包 的种类是
PACKAGE。 - module 的种类是
MODULE。 - 类型元素 的种类是
ANNOTATION_TYPE、CLASS、ENUM、INTERFACE或RECORD之一。 - 多变的 的种类是
ENUM_CONSTANT、EXCEPTION_PARAMETER、FIELD、LOCAL_VARIABLE、PARAMETER、RESOURCE_VARIABLE或BINDING_VARIABLE之一。 - 可执行的 的种类是
CONSTRUCTOR、INSTANCE_INIT、METHOD或STATIC_INIT之一。 - 类型参数 的种类是
TYPE_PARAMETER。 - 记录组件 的种类是
RECORD_COMPONENT。
- 返回:
-
这个元素的
kind
- 包 的种类是
-
getModifiers
- 返回:
- 此元素的修饰符,如果没有则为空集
-
getSimpleName
Name getSimpleName()返回此元素的简单(非限定)名称。泛型类或接口的名称不包括对其正式类型参数的任何引用。例如,表示java.util.Set<E>的类型元素的简单名称是"Set"。如果此元素表示未命名的 包 或未命名的 module ,则返回 空名。如果它表示 构造器 ,则返回名称“<init>”。如果它表示 静态初始化器 ,则返回名称“<clinit>”。如果它表示 匿名类 或 实例初始化器 ,则返回 空名。- 返回:
- 此元素的简单(非限定)名称
- 参见:
-
getEnclosingElement
Element getEnclosingElement()返回包含此元素的最里面的元素,松散地说,包含在其中。- 返回:
-
封闭元素,如果没有则为
null - 参见:
-
getEnclosedElements
返回松散地说直接包含在该元素中的元素。一个类或接口被认为包含了它直接声明的字段、方法、构造函数、记录组件以及成员类和接口。 包 包含其中的顶级类和接口,但不被视为包含子包。 module 包含其中的包。封闭的元素可能包括隐式声明的 强制的 元素。其他种类的元素目前不考虑包含任何元素;但是,随着此 API 或编程语言的发展,这可能会发生变化。- API 注意:
-
可以使用
ElementFilter中的方法隔离某些种类的元素。 - 返回:
- 封闭的元素,如果没有则为空列表
- 看Java 语言规范:
-
8.8.9 默认构造函数
8.9 枚举类
8.10 记录类
- 参见:
-
equals
如果参数表示与this相同的元素,则返回true,否则返回false。 -
hashCode
int hashCode()遵守Object.hashCode的总合同。 -
getAnnotationMirrors
List <? extends AnnotationMirror > getAnnotationMirrors()返回此构造上的 directly present 注释。要同时获得继承的注释,请使用
getAllAnnotationMirrors。请注意,此方法返回的任何注释都是声明注解。
- 指定者:
getAnnotationMirrors在接口AnnotatedConstruct中- 返回:
- 此构造上的注释 directly present;如果没有,则为空列表
- 自从:
- 1.6
-
getAnnotation
如果这样的注释是 present ,则返回此构造的指定类型的注解,否则返回null。此方法返回的注释可能包含一个值为
Class类型的元素。该值不能直接返回:定位和加载类所需的信息(例如要使用的类加载器)不可用,并且该类可能根本无法加载。尝试通过对返回的注释调用相关方法来读取Class对象将导致MirroredTypeException,可以从中提取相应的TypeMirror。同样,尝试读取Class[]值元素将导致MirroredTypesException。笔记:此方法与此接口和相关接口中的其他方法不同。它对运行时反射信息(当前加载到 VM 中的注释接口的表示)进行操作,而不是对这些接口定义和使用的表示进行操作。因此,在返回的注解对象上调用方法会抛出许多在调用核心反射返回的注解对象上的方法时可能抛出的异常。此方法适用于编写为在一组已知的固定注释接口上进行操作的调用方。
请注意,此方法返回的任何注解都是声明注解。
- 指定者:
getAnnotation在接口AnnotatedConstruct中- 类型参数:
A- 注释接口- 参数:
annotationType——注解接口对应的Class对象- 返回:
-
如果此类注解为 present ,则此构造的指定类型注解,否则为
null - 自从:
- 1.6
- 参见:
-
getAnnotationsByType
返回带有此构造的 associated 注释。如果没有与此构造关联的注释,则返回值是长度为 0 的数组。直接或间接出现在构造上的注释的顺序C被计算为好像间接存在注解C直接出现在C代替它们的容器注解,按照它们在容器注解的值元素中出现的顺序。此方法与AnnotatedConstruct.getAnnotation(Class)之间的区别在于,此方法检测其参数是否为 repeatable annotation interface ,如果是,则尝试通过“查看”容器注解来查找该类型的一个或多个注释。此方法返回的注释可能包含一个值为
Class类型的元素。该值不能直接返回:定位和加载类所需的信息(例如要使用的类加载器)不可用,并且该类可能根本无法加载。尝试通过对返回的注释调用相关方法来读取Class对象将导致MirroredTypeException,可以从中提取相应的TypeMirror。同样,尝试读取Class[]值元素将导致MirroredTypesException。笔记:此方法与此接口和相关接口中的其他方法不同。它对运行时反射信息(当前加载到 VM 中的注释接口的表示)进行操作,而不是对这些接口定义和使用的表示进行操作。因此,在返回的注解对象上调用方法会抛出许多在调用核心反射返回的注解对象上的方法时可能抛出的异常。此方法适用于编写为在一组已知的固定注释接口上进行操作的调用方。
请注意,此方法返回的任何注释都是声明注解。
- 指定者:
getAnnotationsByType在接口AnnotatedConstruct中- 类型参数:
A- 注释接口- 参数:
annotationType——注解接口对应的Class对象- 返回:
- 如果存在于此构造上,则此构造针对指定注解类型的注解,否则为空数组
- 自从:
- 1.8
- 参见:
-
accept
将访问者应用于此元素。- 类型参数:
R- 访问者方法的返回类型P- 访问者方法的附加参数的类型- 参数:
v- 在此元素上操作的访问者p- 访问者的附加参数- 返回:
- 访问者指定的结果
-