ElementType in Java

java.lang.annotation.ElementType

The constants of this enumerated type provide a simple classification of the syntactic locations where annotations may appear in a Java program. These constants are used in 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.

Declaration

public enum ElementType {
    TYPE,

    FIELD,

    METHOD,

    PARAMETER,

    CONSTRUCTOR,

    LOCAL_VARIABLE,

    ANNOTATION_TYPE,

    PACKAGE,

    TYPE_PARAMETER,

    TYPE_USE,

    MODULE,

    @jdk.internal.PreviewFeature(feature =
jdk.internal.PreviewFeature.Feature.RECORDS,
essentialAPI = true)
    RECORD_COMPONENT;
}


1. TYPE

java.lang.annotation.ElementType.TYPE

Class, interface (including annotation type), enum, or record declaration

2. FIELD

java.lang.annotation.ElementType.FIELD

Field declaration (includes enum constants)

3. METHOD

java.lang.annotation.ElementType.METHOD

Method declaration

4. PARAMETER

java.lang.annotation.ElementType.PARAMETER

Formal parameter declaration

5. CONSTRUCTOR

java.lang.annotation.ElementType.CONSTRUCTOR

Constructor declaration

6. LOCAL_VARIABLE

java.lang.annotation.ElementType.LOCAL_VARIABLE

Local variable declaration

7. ANNOTATION_TYPE

java.lang.annotation.ElementType.ANNOTATION_TYPE

Annotation type declaration

8. PACKAGE

java.lang.annotation.ElementType.PACKAGE

Package declaration

9. TYPE_PARAMETER

java.lang.annotation.ElementType.TYPE_PARAMETER

Type parameter declaration

10. TYPE_USE

java.lang.annotation.ElementType.TYPE_USE

Use of a type

11. MODULE

java.lang.annotation.ElementType.MODULE

Module declaration.

12. RECORD_COMPONENT

java.lang.annotation.ElementType.RECORD_COMPONENT

Record component


Some other classes/interfaces of java.lang.annotation

Native: Indicates that a field defining a constant value may be referenced from native code.

InheritedIndicates that an annotation type is automatically inherited.

IncompleteAnnotationExceptionThrown to indicate that a program has attempted to access an element of an annotation type that was added to the annotation type definition after the annotation was compiled (or serialized). 

AnnotationFormatErrorThrown when the annotation parser attempts to read an annotation from a class file and determines that the annotation is malformed.

ElementTypeThe constants of this enumerated type provide a simple classification of the syntactic locations where annotations may appear in a Java program.

DocumentedIf the annotation @Documented is present on the declaration of an annotation type A, then any @A annotation on an element is considered part of the element's public contract.

AnnotationTypeMismatchExceptionThrown to indicate that a program has attempted to access an element of an annotation whose type has changed after the annotation was compiled.

AnnotationThe common interface is extended by all annotation types.

RepeatableThe annotation type is java.lang.annotation.Repeatable is used to indicate that the annotation type whose declaration it(meta-)annotates is repeatable.

RetentionIndicates how long annotations with the annotated type are to be retained. If no Retention annotation is present on an annotation-type declaration, the retention policy defaults to RetentionPolicy.CLASS.

RetentionPolicyAnnotation retention policy. The constants of this enumerated type describe the various policies for retaining annotations.

TargetIndicates the contexts in which an annotation type is applicable.

No comments:

Post a Comment