Module java.compiler

Interface TypeElement

所有超级接口:
AnnotatedConstruct, Element, Parameterizable, QualifiedNameable

public interface TypeElement extends Element, Parameterizable, QualifiedNameable
代表一个类或接口程序元素。提供对类或接口及其成员的信息访问。请注意,枚举类和记录类是类的特殊种类,注解接口是接口的特殊种类。

虽然 TypeElement 代表一个类或接口 元素DeclaredType 代表一个类或接口 类型,后者是前者的使用(或 调用)。这种区别在泛型类型中最为明显,对于泛型类型,一个元素可以定义整个类型族。例如,元素 java.util.Set 对应于参数化类型 java.util.Set<String>java.util.Set<Number>(以及许多其他类型),以及原始类型 java.util.Set

此接口的每个返回元素列表的方法将按照程序信息来源的自然顺序返回它们。例如,如果信息来源是Java源代码,则元素将按照源代码顺序返回。

API 注意:
所代表的类或接口可能具有一个 引用表示(源代码或可执行输出)。多个类和接口可以共享相同的引用表示支持结构。例如,多个类和接口可以在同一源文件中声明,包括但不限于:

在注解处理的上下文中,类型元素可以是:

  • 从工具运行的初始输入中创建
  • 从处理器编写的 源代码类文件 创建
  • 在配置的环境中 查询
自 JDK 版本:
1.6
参见:
  • Method Details

    • asType

      TypeMirror asType()
      返回由此类或接口元素定义的类型,为代表泛型类型的元素返回 原型 类型。

      泛型元素定义了一组类型,而不仅仅是一个。如果这是一个泛型元素,则返回一个原型类型,该类型具有元素对应于其自身形式类型参数的类型变量的调用。例如,对于泛型类元素 C<N extends Number>,将返回参数化类型 C<N>Types 实用接口具有更通用的方法,用于获取元素定义的完整类型范围。

      指定者:
      asType 在接口 Element
      返回:
      此类型元素定义的类型
      参见:
    • getEnclosedElements

      List<? extends Element> getEnclosedElements()
      返回直接在此类或接口中声明的字段、方法、构造函数、记录组件以及成员类和接口。这包括任何 强制 元素,例如(隐式)默认构造函数和枚举类的隐式 valuesvalueOf 方法。
      指定者:
      getEnclosedElements 在接口 Element
      API 注意:
      作为对此接口所需的一般准确性要求和排序行为的特定实例,将以关于类或接口信息来源的自然顺序返回封闭元素列表。例如,如果关于类或接口的信息来自源文件,则元素将按照源代码顺序返回。(但在这种情况下,例如默认构造函数等 隐式声明 元素的排序未指定。)
      返回:
      适当顺序中的封闭元素,如果没有则返回空列表
      参见 Java 语言规范:
      8.8.9 默认构造函数
      8.9.3 枚举成员
      8.10.3 记录成员
      参见:
    • getNestingKind

      NestingKind getNestingKind()
      返回此类或接口元素的 嵌套类型
      返回:
      此类或接口元素的嵌套类型
    • getQualifiedName

      Name getQualifiedName()
      返回此类或接口元素的完全限定名称。更准确地说,它返回 规范 名称。对于本地、匿名和 无名称预览 类,它们没有规范名称,将返回一个 空名称

      泛型类或接口的名称不包括对其形式类型参数的任何引用。例如,接口 java.util.Set<E> 的完全限定名称是 "java.util.Set"。嵌套类和接口使用 "." 作为分隔符,如 "java.util.Map.Entry"。

      指定者:
      getQualifiedName 在接口 QualifiedNameable
      返回:
      此类或接口元素的完全限定名称,如果没有则返回空名称
      参见 Java 语言规范:
      6.7 完全限定名称和规范名称
      7.3 编译单元
      参见:
    • getSimpleName

      Name getSimpleName()
      返回此类或接口元素的简单名称。对于匿名类,将返回一个 空名称。对于 无名称预览 类,将返回与托管文件的基本名称匹配的名称,减去任何扩展名。
      指定者:
      getSimpleName 在接口 Element
      返回值:
      此类或接口的简单名称,匿名类的空名称
      参见:
    • isUnnamed

      default boolean isUnnamed()
      isUnnamed是Java平台的反射预览API。
      预览功能可能会在将来的版本中被移除,或升级为Java平台的永久功能。
      如果这是一个无名类,则返回true,否则返回false
      实现要求:
      此方法的默认实现返回false
      返回值:
      如果这是一个无名类,则返回true,否则返回false
      参见 Java语言规范:
      7.3 编译单元
      自Java版本:
      21
    • getSuperclass

      TypeMirror getSuperclass()
      返回此类或接口元素的直接超类。如果此类或接口元素表示一个接口或类java.lang.Object,则返回一个具有种类NoType和种类NONE的类型。
      返回值:
      直接超类,如果没有则返回NoType
    • getInterfaces

      List<? extends TypeMirror> getInterfaces()
      返回此类直接实现的接口类型或此接口直接扩展的接口类型。
      返回值:
      直接实现的接口类型或直接扩展的接口类型,如果没有则返回空列表
    • getTypeParameters

      List<? extends TypeParameterElement> getTypeParameters()
      返回此类或接口元素的声明顺序中的形式类型参数。
      指定者:
      getTypeParameters 在接口 Parameterizable
      返回值:
      形式类型参数,如果没有则返回空列表
    • getRecordComponents

      default List<? extends RecordComponentElement> getRecordComponents()
      返回此类或接口元素的声明顺序中的记录组件。
      实现要求:
      此方法的默认实现返回一个空的不可修改列表。
      返回值:
      记录组件,如果没有则返回空列表
      自Java版本:
      16
    • getPermittedSubclasses

      default List<? extends TypeMirror> getPermittedSubclasses()
      返回此类或接口元素的声明顺序中的允许类。
      实现要求:
      此方法的默认实现返回一个空的不可修改列表。
      返回值:
      允许类,如果没有则返回空列表
      自Java版本:
      17
    • getEnclosingElement

      Element getEnclosingElement()
      返回顶层类或接口的包,并返回嵌套类或接口的立即词法封闭元素。
      指定者:
      getEnclosingElement 在接口 Element
      返回值:
      顶层类或接口的包,嵌套类或接口的立即词法封闭元素
      参见: