-
- All Superinterfaces:
-
AnnotatedConstruct
- All Known Subinterfaces:
-
ExecutableElement
,ModuleElement
,PackageElement
,Parameterizable
,QualifiedNameable
,TypeElement
,TypeParameterElement
,VariableElement
public interface Element extends AnnotatedConstruct
表示程序元素,如模块,包,类或方法。 每个元素表示静态的语言级结构(而不是虚拟机的运行时结构)。应使用
equals(Object)
方法比较元素。 不能保证任何特定元素始终由同一个对象表示。要实现基于
Element
对象类的操作,请使用visitor或使用getKind()
方法的结果。 使用instanceof
不一定是确定有效类的对象在这个造型层次,因为一个实现可以选择让单个对象实现多个可靠的成语Element
子接口。- 从以下版本开始:
- 1.6
- 另请参见:
-
Elements
,TypeMirror
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 <R,P> R
accept(ElementVisitor<R,P> v, P p)
将访问者应用于此元素。TypeMirror
asType()
返回此元素定义的类型。boolean
equals(Object obj)
返回true
如果参数表示相同的元件作为this
,或false
否则。<A extends Annotation>
AgetAnnotation(Class<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
的一般合同。-
Methods inherited from interface javax.lang.model.AnnotatedConstruct
getAnnotationsByType
-
-
-
-
方法详细信息
-
asType
TypeMirror asType()
返回此元素定义的类型。通用元素定义了一系列类型,而不仅仅是一个类型。 如果这是一个通用元素,则返回原型类型。 这是元素对与其自己的形式类型参数相对应的类型变量的调用。 例如,对于通用类元素
C<N extends Number>
,返回参数化类型C<N>
。Types
实用程序界面具有更多的一般方法来获取元素定义的全部范围。- 结果
- 该元素定义的类型
- 另请参见:
-
Types
-
getKind
ElementKind getKind()
返回此元素的kind
。- 结果
- 这种元素的种类
-
getModifiers
Set<Modifier> getModifiers()
返回此元素的修饰符,不包括注释。 包含隐式修饰符,如接口成员的public
和static
修饰符。- 结果
- 该元素的修饰符,如果没有,则为空集
-
getSimpleName
Name getSimpleName()
返回此元素的简单(不合格)名称。 通用类型的名称不包括对其正式类型参数的任何引用。 例如,类型元素java.util.Set<E>
的简单名称是"Set"
。 如果此元素表示未命名的package或未命名的module ,则返回一个空名称。 如果代表constructor ,则返回名称“<init>
”。 如果代表static initializer ,则返回名称“<clinit>
”。 如果它代表一个anonymous class或instance initializer ,则返回一个空名 。
-
getEnclosingElement
Element getEnclosingElement()
返回这个元素所在的最内层元素。- 如果这个元素是一个声明在另一个元素的声明中立即包含声明的元素,则返回该另一个元素。
- 如果是top-level type ,则返回其包。
- 如果这是一个package ,如果这样的模块存在,则返回其模块。 否则返回
null
。 - 如果是type parameter ,则返回类型参数的the generic element 。
- 如果这是一个method or constructor parameter ,其中声明返回参数的the executable element 。
- 如果是module ,则返回
null
。
- 结果
-
封闭元素,如果没有,
null
- 另请参见:
-
Elements.getPackageOf(javax.lang.model.element.Element)
-
getEnclosedElements
List<? extends Element> getEnclosedElements()
返回由这个元素直接包围的松散元素。 A class or interface被认为包含它直接声明的字段,方法,构造函数和成员类型。 A package包含其中的顶级类和接口,但不被视为封装子包。 A module在其中包围包。 封闭元件可包括隐含声明mandated个元素。 目前还没有其他类型的要素包含任何要素; 然而,这可能会随着API或编程语言的发展而改变。- API Note:
-
某些种类的元素可以使用
ElementFilter
中的方法进行分离。 - 结果
- 封闭的元素,如果没有空列表
- 另请参见:
-
TypeElement.getEnclosedElements()
,PackageElement.getEnclosedElements()
,ModuleElement.getEnclosedElements()
,Elements.getAllMembers(javax.lang.model.element.TypeElement)
- See The Java™ Language Specification:
- 8.8.9默认构造函数,8.9枚
-
equals
boolean equals(Object obj)
返回true
如果参数表示相同的元件作为this
,或false
否则。- 重写:
-
equals
在Object
- API Note:
-
元素的身份涉及不能直接从元素的方法访问的隐含状态,包括关于不相关类型的存在的状态。
通过这些接口的不同实施方式创建的元素对象不应该被预期为即使“相同的”元件被建模相等;
这类似于
Class
对象通过不同类加载器加载的同一类文件的不等式。 - 参数
-
obj
- 要与此元素进行比较的对象 - 结果
-
true
如果指定的对象表示与此相同的元素 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
int hashCode()
遵守Object.hashCode
的一般合同。- 重写:
-
hashCode
在Object
- 结果
- 该对象的哈希码值。
- 另请参见:
-
equals(java.lang.Object)
-
getAnnotationMirrors
List<? extends AnnotationMirror> getAnnotationMirrors()
返回直接存在于此构造上的注释。要获取继承的注释,请使用
getAllAnnotationMirrors
。- Specified by:
-
getAnnotationMirrors
在接口AnnotatedConstruct
- 结果
- 该结构上直接出现的注释; 一个空列表,如果没有
- 从以下版本开始:
- 1.6
-
getAnnotation
<A extends Annotation> A getAnnotation(Class<A> annotationType)
返回指定类型的这种构造的注解,如果这样的注释存在 ,否则null
。此方法返回的注释可能包含一个值为
Class
的元素。 此值无法直接返回:查找和加载类(例如要使用的类加载器)所需的信息不可用,并且该类可能无法加载。 通过对返回的注释调用相关方法,尝试读取Class
对象将导致一个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.
- Specified by:
-
getAnnotation
在接口AnnotatedConstruct
- 参数类型
-
A
- 注释类型 - 参数
-
annotationType
- 对应于注释类型的Class
对象 - 结果
-
该构造的注释指定的注释类型,如果存在,否则为
null
- 从以下版本开始:
- 1.6
- 另请参见:
-
AnnotatedConstruct.getAnnotationMirrors()
,AnnotatedElement.getAnnotation(java.lang.Class<T>)
,EnumConstantNotPresentException
,AnnotationTypeMismatchException
,IncompleteAnnotationException
,MirroredTypeException
,MirroredTypesException
-
accept
<R,P> R accept(ElementVisitor<R,P> v, P p)
将访问者应用于此元素。- 参数类型
-
R
- 访问者方法的返回类型 -
P
- 访问者方法的附加参数的类型 - 参数
-
v
- 访问者操作此元素 -
p
- 访问者的附加参数 - 结果
- a visitor-specified result
-
-