Serializable
, Comparable<ElementType>
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
, MODULE
, 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 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 | Description |
---|---|
ANNOTATION_TYPE |
Annotation type declaration
|
CONSTRUCTOR |
Constructor declaration
|
FIELD |
Field declaration (includes enum constants)
|
LOCAL_VARIABLE |
Local variable declaration
|
METHOD |
Method declaration
|
MODULE |
Module 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 | 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 final ElementType MODULE
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, 2017, Oracle and/or its affiliates. 500 Oracle Parkway
Redwood Shores, CA 94065 USA. All rights reserved.
DRAFT 9-internal+0-adhoc.mlchung.jdk9-jdeps