Elements
javax.lang.model.util
接口 Elements
public interface Elements
用来对程序元素进行操作的实用工具方法。
兼容性注意事项: 在将来的平台版本中可能会向此接口添加一些方法。
从以下版本开始: 1.6 另请参见:ProcessingEnvironment.getElementUtils()
| 方法摘要 | |
|---|---|
| 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 | overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type)
测试一个方法(作为给定类型的成员)是否重写了另一个方法。 |
| void | printElements(Writer w, Element... elements)
按指定顺序将元素的表示形式打印到给定 writer。 |
| 方法详细信息 |
|---|
getPackageElement
PackageElement getPackageElement(CharSequence name)返回已给出其完全限定名称的包。 参数:name - 完全限定的包名称;对于未命名的包,该参数为 "" 返回:指定的包;如果没有找到这样的包,则返回 null
getTypeElement
TypeElement getTypeElement(CharSequence name)返回已给出其规范名称的类型元素。 参数:name - 规范名称 返回:指定的类型元素;如果没有找到这样的元素,则返回 null
getElementValuesWithDefaults
Map<? extends ExecutableElement,? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)返回注释元素的值,包括默认值。 参数:a - 要检查的注释 返回:注释元素的值,包括默认值另请参见:AnnotationMirror.getElementValues()
getDocComment
String getDocComment(Element e)返回元素的文档("Javadoc")注释文本。 参数:e - 将被检查的元素 返回:元素的文档注释;如果没有,则返回 null
isDeprecated
boolean isDeprecated(Element e)如果元素已过时,则返回 true,否则返回 false。 参数:e - 将被检查的元素 返回:如果元素已过时,则返回 true,否则返回 false
getBinaryName
Name getBinaryName(TypeElement type)返回类型元素的二进制名称。 参数:type - 将被检查的类型元素 返回:二进制名称另请参见:TypeElement.getQualifiedName()
getPackageOf
PackageElement getPackageOf(Element type)返回元素的包。包的包是它本身。 参数:type - 将被检查的元素 返回:元素的包
getAllMembers
List<? extends Element> getAllMembers(TypeElement type)返回类型元素的所有成员,不管是继承的还是直接声明的。对于一个类,结果还包括其构造方法,但不包括局部类或匿名类。
注意,使用 ElementFilter 中的方法可以隔离某个种类的元素。
参数:type - 将被检查的类型 返回:类型的所有成员另请参见:Element.getEnclosedElements()
getAllAnnotationMirrors
List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)返回元素的所有注释,不管是继承的还是直接存在的。 参数:e - 将被检查的元素 返回:元素的所有注释另请参见:Element.getAnnotationMirrors()
hides
boolean hides(Element hider, Element hidden)测试一个类型、方法或字段是否隐藏了另一个类型、方法或字段。 参数:hider - 第一个元素hidden - 第二个元素 返回:当且仅当第一个元素隐藏了第二个元素时返回 true
overrides
boolean overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type)测试一个方法(作为给定类型的成员)是否重写了另一个方法。当非抽象方法重写抽象方法时,还可以说成是前者实现 了后者。
在 最简单且最典型的用法中,type 参数的值就是直接封装 overrider(可能重写的方法)的类或接口。例如,假设 m1 表示方法 String.hashCode,而 m2 表示 Object.hashCode。可以询问 m1 是否重写了 String 类中的 m2(它的确重写了该方法):
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 - 第一个方法,可能是 overrideroverridden - 第二个方法,可能被重写type - 第一个方法是其成员的类型 返回:当且仅当第一个方法重写第二个方法时返回 true
getConstantExpression
String getConstantExpression(Object value)返回表示基本值或字符串的常量表达式 文本。返回文本的形式是一种适合于表示源代码中的值的形式。 参数:value - 基本值或字符串 返回:常量表达式的文本 抛出: IllegalArgumentException - 如果参数不是基本值或字符串另请参见:VariableElement.getConstantValue()
printElements
void printElements(Writer w, Element... elements)按指定顺序将元素的表示形式打印到给定 writer。此方法的主要用途是诊断。输出的具体格式没有 指定并且是可以更改的。 参数:w - 输出打印到的 writerelements - 要打印的元素
getName
Name getName(CharSequence cs)返回与参数具有相同字符序列的名称。 参数:cs - 将以名称形式返回的字符序列
浙公网安备 33010602011771号