Método de campo getAnnotation() en Java con ejemplos

El método getAnnotation() de java.lang.reflect.Field se utiliza para devolver los objetos de campo para el tipo especificado si dicha anotación está presente, de lo contrario, es nulo. Este es un método importante para obtener la anotación para el objeto de campo.

Sintaxis:

public <T extends Annotation> T
  getAnnotation(Class<T> annotationClass)

Parámetros: este método annotationClass , que es el objeto de clase correspondiente al tipo de anotación.

Retorno : este método devuelve la anotación de este elemento para el tipo de anotación especificado si está presente en este elemento, de lo contrario, es nulo.

Excepción : este método lanza NullPointerException si la clase de anotación dada es nula.

Los siguientes programas ilustran el método getAnnotation():
Programa 1:

// Java program to illustrate
// getAnnotation() method
  
import java.lang.annotation.*;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.Field;
import java.util.Arrays;
  
public class GFG {
  
    // initialize field with
    // default value in annotation
    @annotations(3125462345.32155365326)
  
    private double realNumbers;
  
    public static void main(String[] args)
        throws NoSuchFieldException
    {
  
        // create Field object
        Field field
            = GFG.class
                  .getDeclaredField("realNumbers");
  
        // apply getAnnotation()
        annotations annotations
            = field.getAnnotation(
                annotations.class);
  
        // print results
        System.out.println(annotations);
    }
  
    @Target({ ElementType.FIELD })
    @Retention(RetentionPolicy.RUNTIME)
    private @interface annotations {
        double value() default 99.9;
    }
}
Producción:

@GFG$annotations(value=3.1254623453215537E9)

Programa 2:

// Java program to illustrate
// getAnnotation() method
  
import java.lang.annotation.*;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.Field;
import java.util.Arrays;
  
public class GFG {
    private int @SpecialNumber[] number;
  
    public static void main(String[] args)
        throws NoSuchFieldException
    {
        // get Field object
        Field field
            = GFG.class
                  .getDeclaredField("number");
  
        // apply getAnnotation() method
        AnnotatedType annotatedType
            = field.getAnnotation();
  
        // print the results
        System.out.println(
            "Type: "
            + annotatedType.getType()
                  .getTypeName());
        System.out.println(
            "Annotations: "
            + Arrays.toString(
                  annotatedType
                      .getAnnotations()));
        System.out.println(
            "Declared Annotations: "
            + Arrays.toString(
                  annotatedType
                      .getDeclaredAnnotations()));
    }
  
    @Target({ ElementType.TYPE_USE })
    @Retention(RetentionPolicy.RUNTIME)
    private @interface SpecialNumber {
    }
}
Producción:

@GFG$annotations(value=WelcomeTOGFG)

Referencias: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html#getAnnotation–

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *