Método constructor getAnnotation() en Java con ejemplos

El método getAnnotation() de una clase Constructor se usa para obtener esta anotación de objeto constructor para el tipo especificado si tal anotación está presente, de lo contrario, es nula. El tipo especificado se pasa como parámetro.

Sintaxis:

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

Parámetros: este método acepta un solo parámetro annotationClass que representa el objeto Class correspondiente al tipo de anotación.

Valor devuelto: 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 demonstrate
// Constructor.getAnnotation() method
  
import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.AnnotatedType;
import java.lang.reflect.Constructor;
  
public class GFG {
  
    public static void main(String... args)
        throws NoSuchMethodException
    {
  
        // Create Constructor Object
        Constructor[] constructors
            = Demo.class.getConstructors();
  
        // Create annotation object
        Annotation annotation
            = constructors[0]
                  .getAnnotation(PathVar.class);
  
        if (annotation instanceof PathVar) {
  
            PathVar customAnnotation
                = (PathVar)annotation;
            System.out.println(
                "Path: "
                + customAnnotation.Path());
        }
    }
}
  
// Demo class
class Demo {
    public Demo(@PathVar(Path = "Demo/usr")
                String str) {}
}
  
// PathVar interface
@Target({ ElementType.TYPE_USE })
@Retention(RetentionPolicy.RUNTIME)
@interface PathVar {
    public String Path();
}

Producción:

Path: Demo/usr

Programa 2:

// Java program to demonstrate
// Constructor.getAnnotation() method
  
import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Constructor;
  
public class GFG {
  
    public static void main(String... args)
        throws NoSuchMethodException
    {
  
        // Create Constructor Object
        Constructor[] constructors
            = Maths.class.getConstructors();
  
        // Create annotation object
        Annotation annotation
            = constructors[0]
                  .getAnnotation(Calculator.class);
  
        System.out.println(
            "Annotation:"
            + annotation.toString());
    }
}
  
// Demo class
@Calculator(add = "Adding value",
            subtract = "Subtracting Value")
class Maths {
  
    @Calculator(add = "Adding value",
                subtract = "Subtracting Value")
    public Maths() {}
}
  
// Calculator interface
@Retention(RetentionPolicy.RUNTIME)
@interface Calculator {
    public String add();
    public String subtract();
}

Producción:

Annotation : @Calculator(add=Adding value, subtract=Subtracting Value)

Referencias: https://docs.oracle.com/javase/10/docs/api/java/lang/reflect/Constructor.html#getAnnotation(java.lang.Class)

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 *