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_TYPEAnnotation type declaration | 
| CONSTRUCTORConstructor declaration | 
| FIELDField declaration (includes enum constants) | 
| LOCAL_VARIABLELocal variable declaration | 
| METHODMethod declaration | 
| PACKAGEPackage declaration | 
| PARAMETERFormal parameter declaration | 
| TYPEClass, interface (including annotation type), or enum declaration | 
| TYPE_PARAMETERType parameter declaration | 
| TYPE_USEUse of a type | 
| Modifier and Type | Method and Description | 
|---|---|
| static ElementType | valueOf(String name)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 ElementType TYPE
public static final ElementType FIELD
public static final ElementType METHOD
public static final ElementType PARAMETER
public static final ElementType CONSTRUCTOR
public static final ElementType LOCAL_VARIABLE
public static final ElementType ANNOTATION_TYPE
public static final ElementType PACKAGE
public static final ElementType TYPE_PARAMETER
public static final ElementType TYPE_USE
public static ElementType[] values()
for (ElementType c : ElementType.values()) System.out.println(c);
public static ElementType valueOf(String name)
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum type has no constant with the specified nameNullPointerException - if the argument is null Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.