public interface Element extends AnnotatedConstruct
应使用equals(Object)
方法比较元素。 不能保证任何特定元素始终由同一个对象表示。
要实现基于Element
对象类的操作,请使用visitor或使用getKind()
方法的结果。 使用instanceof
不一定是确定有效类的对象在这个造型层次,因为一个实现可以选择让单个对象实现多个可靠的成语Element
子接口。
Elements
, TypeMirror
Modifier and Type | Method and Description |
---|---|
<R,P> R |
accept(ElementVisitor<R,P> v, P p)
将访问者应用于此元素。
|
TypeMirror |
asType()
返回此元素定义的类型。
|
boolean |
equals(Object obj)
返回
true 如果参数表示相同的元件如
this ,或
false 否则。
|
<A extends Annotation> |
getAnnotation(类<A> annotationType)
返回指定类型的这种构造的注解,如果这样的注释
存在 ,否则
null 。
|
List<? extends AnnotationMirror> |
getAnnotationMirrors()
返回
直接存在于此构造上的注释。
|
List<? extends Element> |
getEnclosedElements()
返回由这个元素直接包围的松散元素。
|
Element |
getEnclosingElement()
返回这个元素所在的最内层元素。
|
ElementKind |
getKind()
返回此元素的
kind 。
|
Set<Modifier> |
getModifiers()
返回此元素的修饰符,不包括注释。
|
Name |
getSimpleName()
返回此元素的简单(不合格)名称。
|
int |
hashCode()
服从的总承包
Object.hashCode 。
|
getAnnotationsByType
TypeMirror asType()
通用元素定义了一系列类型,而不仅仅是一个类型。 如果这是一个通用元素,则返回原型类型。 这是元素对与其自己的形式类型参数相对应的类型变量的调用。 例如,对于通用类元素C<N extends Number>
,返回参数化类型C<N>
。 Types
实用程序界面具有更多的一般方法来获取由元素定义的全部类型。
Types
ElementKind getKind()
kind
。
Set<Modifier> getModifiers()
public
和static
修饰符。
Name getSimpleName()
java.util.Set<E>
的简单名称是"Set"
。
如果此元素表示未命名的package ,则返回空名称。
如果代表constructor ,则返回名称“ <init>
”。
如果代表static initializer ,则返回名称“ <clinit>
”。
如果它代表一个anonymous class或instance initializer ,则返回一个空的名称。
Element getEnclosingElement()
null
。 null
Elements.getPackageOf(javax.lang.model.element.Element)
List<? extends Element> getEnclosedElements()
请注意,某些种类的元素可以使用ElementFilter
中的方法进行分离。
PackageElement.getEnclosedElements()
,
TypeElement.getEnclosedElements()
,
Elements.getAllMembers(javax.lang.model.element.TypeElement)
boolean equals(Object obj)
true
如果参数表示相同的元件如this
,或false
否则。
请注意,元素的身份涉及不能直接从元素的方法访问的隐式状态,包括关于不相关类型的存在的状态。 即使“相同”元素被建模, 也不应该期望由这些接口的不同实现创建的元素对象是相等的; 这类似于通过不同的类加载器加载的相同类文件的类
对象。
equals
在
Object
obj
- 要与此元素进行比较的对象
true
如果指定的对象表示与此相同的元素
Object.hashCode()
, HashMap
int hashCode()
Object.hashCode
。
hashCode
在
Object
equals(java.lang.Object)
List<? extends AnnotationMirror> getAnnotationMirrors()
要获得继承的注释,请使用getAllAnnotationMirrors
。
getAnnotationMirrors
在接口
AnnotatedConstruct
<A extends Annotation> A getAnnotation(类<A> annotationType)
null
。
此方法返回的注释可能包含一个值为类
。 此值无法直接返回:查找和加载类(例如要使用的类加载器)所需的信息不可用,并且该类可能无法加载。 试图读取一类
通过调用返回的注释相关的方法将导致对象MirroredTypeException
,从该对应的TypeMirror
可以被提取。 类似地,尝试读取一个Class[]
值将导致一个MirroredTypesException
。
Note: This method is unlike others in this and related interfaces. It operates on runtime reflective information — representations of annotation types currently loaded into the VM — rather than on the representations defined by and used throughout these interfaces. Consequently, calling methods on the returned annotation object can throw many of the exceptions that can be thrown when calling methods on an annotation object returned by core reflection. This method is intended for callers that are written to operate on a known, fixed set of annotation types.
getAnnotation
中的
AnnotatedConstruct
A
- 注释类型
annotationType
- 对应于注释类型的
类
对象
null
AnnotatedConstruct.getAnnotationMirrors()
, AnnotatedElement.getAnnotation(java.lang.Class<T>)
, EnumConstantNotPresentException
, AnnotationTypeMismatchException
, IncompleteAnnotationException
, MirroredTypeException
, MirroredTypesException
<R,P> R accept(ElementVisitor<R,P> v, P p)
R
- 访问者方法的返回类型
P
- 访问者方法的附加参数类型
v
- 这个元素上的访问者
p
- 访问者的附加参数