-
- 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
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 <R,P>
Raccept(ElementVisitor<R,P> v, P p)
将访问者应用于此元素。TypeMirror
asType()
返回此元素定义的类型。boolean
equals(Object obj)
返回true
如果参数表示相同的元件作为this
,或false
否则。<A extends Annotation>
AgetAnnotation(类<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
的总合同。-
声明方法的接口 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或未命名的模块 ,则返回空名称。 如果它代表构造器 ,则返回名称“<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声明参数。
- 如果这是模块 ,则返回
null
。
- 结果
-
封闭元素,如果没有,
null
- 另请参见:
-
Elements.getPackageOf(javax.lang.model.element.Element)
-
getEnclosedElements
List<? extends Element> getEnclosedElements()
松散地说,返回由此元素直接包含的元素。 class or interface被认为包含它直接声明的字段,方法,构造函数和成员类型。 package包含其中的顶级类和接口,但不包括子包。 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:
-
元素的标识涉及不能直接从元素的方法访问的隐式状态,包括关于不相关类型的存在的状态。
即使对“相同”元素进行建模, 也不应期望由这些接口的不同实现创建的元素对象相等;
这类似于通过不同类加载器加载的同一类文件的
类
对象的不等式。 - 参数
-
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(类<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.
- Specified by:
-
getAnnotation
在界面AnnotatedConstruct
- 参数类型
-
A
- 注释类型 - 参数
-
annotationType
- 与注释类型对应的类
对象 - 结果
-
此构造的指定注释类型的注释(如果存在),否则为
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
-
-