public interface Elements
兼容性注意:在将来的平台版本中可能会添加到此界面中的方法。
ProcessingEnvironment.getElementUtils()
Modifier and Type | Method and Description |
---|---|
List<? extends AnnotationMirror> |
getAllAnnotationMirrors(Element e)
返回元素上
存在的所有注释,无论是直接存在还是通过继承存在。
|
List<? extends Element> |
getAllMembers(TypeElement type)
返回类型元素的所有成员,无论是继承还是直接声明。
|
Name |
getBinaryName(TypeElement type)
返回类型元素的
二进制名称 。
|
String |
getConstantExpression(Object value)
返回表示原始值或字符串的
常量表达式的文本。
|
String |
getDocComment(Element e)
返回元素的文档(“Javadoc”)注释的文本。
|
Map<? extends ExecutableElement,? extends AnnotationValue> |
getElementValuesWithDefaults(AnnotationMirror a)
返回注释元素的值,包括默认值。
|
Name |
getName(CharSequence cs)
返回与参数相同的字符序列的名称。
|
PackageElement |
getPackageElement(CharSequence name)
返回一个给定其全限定名称的包。
|
PackageElement |
getPackageOf(Element type)
返回元素的包。
|
TypeElement |
getTypeElement(CharSequence name)
返回给定其规范名称的类型元素。
|
boolean |
hides(Element hider, Element hidden)
测试一种类型,方法或字段是否隐藏另一种。
|
boolean |
isDeprecated(Element e)
返回
true 如果元素已过时,
false 其他。
|
boolean |
isFunctionalInterface(TypeElement type)
返回
true 如果类型元件是功能性的接口,
false 否则。
|
boolean |
overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type)
测试一种方法,作为给定类型的成员,覆盖其他方法。
|
void |
printElements(Writer w, Element... elements)
以指定的顺序将元素的表示打印到给定的作者。
|
PackageElement getPackageElement(CharSequence name)
name
- 完全限定包名称,或未命名包的“”
null
如果找不到
TypeElement getTypeElement(CharSequence name)
name
- 规范名称
null
如果它不能找到
Map<? extends ExecutableElement,? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
a
- 要检查的注释
AnnotationMirror.getElementValues()
String getDocComment(Element e)
元素的文档注释是以“ /**
”开头的注释,以单独的“ */
” */
,并在元素之前立即忽略空格。 因此,文档注释至少包含三个“ *
”字符。 文档注释返回的文本是出现在源代码中的注释的处理形式。 前导“ /**
”和尾随“ */
”被删除。 对于在初始“ /**
”之后开始的注释行,前导的空白字符将被丢弃,如同在空格或开始行之后出现的任何连续的“ *
”字符一样。 然后处理的线连接在一起(包括线路终端器)并返回。
e
- 正在检查的元素
null
boolean isDeprecated(Element e)
true
如果元素已过时,
false
其他。
e
- 正在检查的元素
true
如果该元素已被弃用,
false
false
Name getBinaryName(TypeElement type)
type
- 正在检查的类型元素
TypeElement.getQualifiedName()
PackageElement getPackageOf(Element type)
type
- 正在检查的元素
List<? extends Element> getAllMembers(TypeElement type)
type
- 正在检查的类型
Element.getEnclosedElements()
List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)
e
- 被检查的元素
Element.getAnnotationMirrors()
, AnnotatedConstruct
boolean hides(Element hider, Element hidden)
hider
- 第一个元素
hidden
- 第二个元素
true
当且仅当第一个元素隐藏第二个元素时
boolean overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type)
在最简单和最典型的用法中, type
参数的值将简单地是直接包含在overrider
(可能覆盖的方法)的类或接口。 例如,假设m1
表示方法String.hashCode
,而m2
表示Object.hashCode
。 然后,我们可以问是否m1
覆盖m2
类中String
(它):
assert elements.overrides(m1, m2, elements.getTypeElement("java.lang.String"));
更有趣的情况下,可以通过下面的例子,其中在类型的方法来说明A
不类型覆盖一个类似命名方法B
:
当作为第三类型的成员观看class A { public void m() {} }
interface B { void m(); }
...
m1 = ...; // A.m
m2 = ...; // B.m
assert ! elements.overrides(m1, m2, elements.getTypeElement("A"));
C
,然而,在该方法A
并覆盖一个在B
:
class C extends A implements B {}
...
assert elements.overrides(m1, m2, elements.getTypeElement("C"));
overrider
- 第一种方法,可能的覆盖
overridden
- 第二种方法,可能被覆盖
type
- 第一种方法是其成员的类型
true
当且仅当第一种方法覆盖第二种方法时
String getConstantExpression(Object value)
value
- 一个原始值或字符串
IllegalArgumentException
- 如果参数不是原始值或字符串
VariableElement.getConstantValue()
void printElements(Writer w, Element... elements)
w
- 作者将输出打印到
elements
- 要打印的元素
Name getName(CharSequence cs)
cs
- 作为名称返回的字符序列
boolean isFunctionalInterface(TypeElement type)
true
如果类型元件是功能性的接口,
false
否则。
type
- 正在检查的类型元素
true
如果元素是功能界面,
false
否则