- 所有已实现的接口:
-
Serializable
,Comparable<ElementType>
,Constable
这个枚举类的常量提供了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
-
Nested Class Summary
Nested classes/interfaces declared in class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantDescription注解接口声明(以前称为注解类型。)构造函数声明字段声明(包括枚举常量)局部变量声明方法声明模块声明包声明形式参数声明记录组件类、接口(包括注解接口)、枚举或记录声明类型参数声明类型的使用 -
Method Summary
Modifier and TypeMethodDescriptionstatic ElementType
返回具有指定名称的此类的枚举常量。static ElementType[]
values()
返回一个数组,其中包含此枚举类的常量,按照它们声明的顺序排列。
-
Enum Constant Details
-
TYPE
类、接口(包括注解接口)、枚举或记录声明 -
FIELD
字段声明(包括枚举常量) -
METHOD
方法声明 -
PARAMETER
形式参数声明 -
CONSTRUCTOR
构造函数声明 -
LOCAL_VARIABLE
局部变量声明 -
ANNOTATION_TYPE
注解接口声明(以前称为注解类型。) -
PACKAGE
包声明 -
TYPE_PARAMETER
类型参数声明- 自版本:
- 1.8
-
TYPE_USE
类型的使用- 自版本:
- 1.8
-
MODULE
模块声明- 自版本:
- 9
-
RECORD_COMPONENT
记录组件- 参见 Java语言规范:
-
8.10.3 记录成员
9.7.4 注解可能出现的位置
- 自版本:
- 16
-
-
Method Details
-
values
返回一个数组,其中包含此枚举类的常量,按照它们声明的顺序排列。- 返回:
- 包含此枚举类的常量,按照它们声明的顺序排列的数组
-
valueOf
返回具有指定名称的此类的枚举常量。字符串必须与在此类中声明枚举常量时使用的标识符完全匹配。(不允许存在多余的空白字符。)- 参数:
-
name
- 要返回的枚举常量的名称。 - 返回:
- 具有指定名称的枚举常量
- 抛出:
-
IllegalArgumentException
- 如果此枚举类没有具有指定名称的常量 -
NullPointerException
- 如果参数为null
-