包 javax.lang.model.element
for
循环或 try
-finally
块的表示。但是,接口可以模拟一些仅出现在方法体内的结构,例如局部变量和匿名类。
当在注释处理的上下文中使用时,必须返回所表示元素的准确模型。由于这是一个语言模型,源代码提供了所讨论构造的基准(参考)表示,而不是像类文件这样的可执行输出中的表示。可执行输出可以作为创建建模元素的基础。然而,将源代码转换为可执行输出的过程可能不允许恢复源代码表示的某些方面。例如,无法从类文件中恢复带有 source 保留 的注释,并且类文件可能无法提供源位置信息。 parameters 的名称可能无法从类文件中恢复。从类文件创建的元素上的 modifiers 在某些情况下可能不同于从源文件创建的相同声明的元素,包括:
strictfp
在类或接口上final
在一个参数上protected
、private
和static
在类和接口上
在标注处理过程中,需要对不完整或错误的程序进行操作;但是,对最终模型的性质的保证较少。如果源代码的语法结构不正确,或者有一些其他无法通过生成新类或接口消除的不可恢复的错误,则可能会或可能不会提供模型作为实现质量问题。如果一个类或接口的程序在语法上是有效的,但在其他方面是错误的,那么任何返回的模型所包含的信息必须不少于程序中所有方法体都被 "throw new RuntimeException();"
替换的信息。如果程序引用缺失的类或接口 Xyz,则返回的模型包含的信息必须不少于假设类或接口 Xyz 的声明为 "class Xyz {}"
、"interface Xyz {}"
、"enum Xyz {}"
、"@interface Xyz {}"
或 "record Xyz {}"
的信息。如果程序引用缺少的类或接口 Xyz<K1, ... ,Kn>
,则返回的模型包含的信息必须不少于假定 Xyz 声明为 "class Xyz<T1, ... ,Tn> {}"
或 "interface Xyz<T1, ... ,Tn> {}"
的信息
除非在特定实现中另有规定,否则此包中的方法返回的集合应该被调用者不可修改并且对于并发访问是不安全的。
除非另有说明,如果给定 null
参数,此包中的方法将抛出 NullPointerException
。
- 看Java 语言规范:
-
6.1 声明
7.4 包装声明
7.7 模块声明
8.1 类声明
8.3 字段声明
8.4 方法声明
8.5 成员类和接口声明
8.8 构造函数声明
9.1 接口声明
- 自从:
- 1.6
- 参见:
-
类描述表示注解。表示注解元素的值。AnnotationValueVisitor <R,
P> 注解元素值的访问者,使用访问者设计模式的变体。表示程序元素,例如模块、包、类或方法。元素的kind
。ElementVisitor <R,P> 访问者程序元素,采用访问者设计模式的风格。表示类或接口的方法、构造函数或初始化程序(静态或实例),包括注释接口元素。表示程序元素(例如类、方法或字段)上的修饰符。表示模块程序元素。表示此模块声明中的指令。指令的kind
。模块指令的访问者,采用访问者设计模式的风格。模块的导出包。打开的模块包。模块提供的服务的实现。模块的依赖。对模块使用的服务的引用。不可变的字符序列。这嵌套类类型元素。表示包程序元素。具有类型参数的元素的混合接口。具有限定名称的元素的混合接口。表示记录组件。表示类或接口程序元素。表示泛型类、接口、方法或构造方法元素的正式类型参数。指示遇到了未知类型的注解值。表示遇到了未知类型的模块指令。表示遇到了未知种类的元素。表示字段、enum
常量、方法或构造函数参数、局部变量、资源变量或异常参数。