Module java.base

Enum Class ElementType

java.lang.Object
java.lang.Enum<ElementType>
java.lang.annotation.ElementType
所有已实现的接口:
Serializable, Comparable<ElementType>, Constable

public enum ElementType extends Enum<ElementType>
这个枚举类的常量提供了Java程序中注解可能出现的句法位置的简单分类。这些常量在Target元注解中使用,用于指定在给定类型的注解中写入合法的位置。

注解可能出现的句法位置分为声明上下文,其中注解适用于声明,和类型上下文,其中注解适用于声明和表达式中使用的类型。

常量ANNOTATION_TYPE, CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, MODULE, PARAMETER, TYPE, 和 TYPE_PARAMETER 对应于JLS 9.6.4.1中的声明上下文。

例如,一个接口被元注解为@Target(ElementType.FIELD)的注解只能被写为字段声明的修饰符。

常量TYPE_USE对应于JLS 4.11中的类型上下文,以及两个声明上下文:类和接口声明(包括注解声明)和类型参数声明。

例如,一个接口被元注解为@Target(ElementType.TYPE_USE)的注解可以写在字段的类或接口上(或者在字段的类或接口内部,如果它是一个嵌套或参数化的类或接口,或数组类),也可以作为类声明的修饰符。

TYPE_USE常量包括类和接口声明以及类型参数声明,以方便类型检查器的设计者给注解接口赋予语义。例如,如果注解接口NonNull被元注解为@Target(ElementType.TYPE_USE),那么@NonNull class C {...}可以被类型检查器视为指示类C的所有变量都是非空的,同时仍然允许其他类的变量是非空或非非空的,取决于变量声明是否出现@NonNull

参见 Java语言规范:
9.6.4.1 @Target
4.1 类型和值的种类
自版本:
1.5
  • Enum Constant Details

    • TYPE

      public static final ElementType TYPE
      类、接口(包括注解接口)、枚举或记录声明
    • FIELD

      public static final ElementType FIELD
      字段声明(包括枚举常量)
    • METHOD

      public static final ElementType METHOD
      方法声明
    • PARAMETER

      public static final ElementType PARAMETER
      形式参数声明
    • CONSTRUCTOR

      public static final ElementType CONSTRUCTOR
      构造函数声明
    • LOCAL_VARIABLE

      public static final ElementType LOCAL_VARIABLE
      局部变量声明
    • ANNOTATION_TYPE

      public static final ElementType ANNOTATION_TYPE
      注解接口声明(以前称为注解类型。)
    • PACKAGE

      public static final ElementType PACKAGE
      包声明
    • TYPE_PARAMETER

      public static final ElementType TYPE_PARAMETER
      类型参数声明
      自版本:
      1.8
    • TYPE_USE

      public static final ElementType TYPE_USE
      类型的使用
      自版本:
      1.8
    • MODULE

      public static final ElementType MODULE
      模块声明
      自版本:
      9
    • RECORD_COMPONENT

      public static final ElementType RECORD_COMPONENT
      记录组件
      参见 Java语言规范:
      8.10.3 记录成员
      9.7.4 注解可能出现的位置
      自版本:
      16
  • Method Details

    • values

      public static ElementType[] values()
      返回一个数组,其中包含此枚举类的常量,按照它们声明的顺序排列。
      返回:
      包含此枚举类的常量,按照它们声明的顺序排列的数组
    • valueOf

      public static ElementType valueOf(String name)
      返回具有指定名称的此类的枚举常量。字符串必须与在此类中声明枚举常量时使用的标识符完全匹配。(不允许存在多余的空白字符。)
      参数:
      name - 要返回的枚举常量的名称。
      返回:
      具有指定名称的枚举常量
      抛出:
      IllegalArgumentException - 如果此枚举类没有具有指定名称的常量
      NullPointerException - 如果参数为null