public enum ElementType extends Enum<ElementType >
java.lang.annotation.Target meta-annotations to specify where it is legal to write annotations of a given type.
The syntactic locations where annotations may appear are split into declaration contexts , where annotations apply to declarations, and type contexts , where annotations apply to types used in declarations and expressions.
The constants ANNOTATION_TYPE , CONSTRUCTOR , FIELD , LOCAL_VARIABLE , METHOD , PACKAGE , PARAMETER , TYPE , and TYPE_PARAMETER correspond to the declaration contexts in JLS 9.6.4.1.
For example, an annotation whose type is meta-annotated with @Target(ElementType.FIELD) may only be written as a modifier for a field declaration.
The constant TYPE_USE corresponds to the 15 type contexts in JLS 4.11, as well as to two declaration contexts: type declarations (including annotation type declarations) and type parameter declarations.
For example, an annotation whose type is meta-annotated with @Target(ElementType.TYPE_USE) may be written on the type of a field (or within the type of the field, if it is a nested, parameterized, or array type), and may also appear as a modifier for, say, a class declaration.
The TYPE_USE constant includes type declarations and type parameter declarations as a convenience for designers of type checkers which give semantics to annotation types. For example, if the annotation type NonNull is meta-annotated with @Target(ElementType.TYPE_USE), then @NonNull class C {...} could be treated by a type checker as indicating that all variables of class C are non-null, while still allowing variables of other classes to be non-null or not non-null based on whether @NonNull appears at the variable's declaration.
| Enum Constant and Description |
|---|
ANNOTATION_TYPE
Annotation type declaration
|
CONSTRUCTOR
Constructor declaration
|
FIELD
Field declaration (includes enum constants)
|
LOCAL_VARIABLE
Local variable declaration
|
METHOD
Method declaration
|
PACKAGE
Package declaration
|
PARAMETER
Formal parameter declaration
|
TYPE
Class, interface (including annotation type), or enum declaration
|
TYPE_PARAMETER
Type parameter declaration
|
TYPE_USE
Use of a type
|
| Modifier and Type | Method and Description |
|---|---|
static ElementType |
valueOf(String
Returns the enum constant of this type with the specified name.
|
static ElementType |
values()
Returns an array containing the constants of this enum type, in the order they are declared.
|
public static final ElementTypeTYPE
public static final ElementTypeFIELD
public static final ElementTypeMETHOD
public static final ElementTypePARAMETER
public static final ElementTypeCONSTRUCTOR
public static final ElementTypeLOCAL_VARIABLE
public static final ElementTypeANNOTATION_TYPE
public static final ElementTypePACKAGE
public static final ElementTypeTYPE_PARAMETER
public static final ElementTypeTYPE_USE
public static ElementType[] values()
for (ElementType c : ElementType.values()) System.out.println(c);
public static ElementTypevalueOf(String name)
name - the name of the enum constant to be returned.
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null