El método java.lang.reflect .Method.getAnnotation(Class< T > annotationClass) de la clase Method devuelve la anotación de los objetos Method para el tipo especificado pasado como parámetro si dicha anotación está presente, de lo contrario, nulo. Este es un método importante para obtener anotaciones para el objeto Método.
Sintaxis:
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
Parámetro: este método toma un parámetro obligatorio annotationClass que es el objeto Class del tipo de anotación.
Valor devuelto: este método devuelve la anotación del método 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
El siguiente programa ilustra el método getAnnotation(Class annotationClass) de la clase Method:
Ejemplo 1: este programa imprime la anotación del método para el tipo de anotación especificado dado como parámetro para getAnnotation() de Method Object que representa el método getCustomAnnotation() de la clase GFG.
En este ejemplo, se usa una sola clase y la clase contiene ambos métodos, que son el método principal y el método con anotación.
// Program Demonstrate getAnnotation(Class<T> annotationClass) method // of Method Class. import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; // create a custom Annotation @Retention(RetentionPolicy.RUNTIME) @interface Annotation { // This annotation has two attributes. public String key(); public String value(); } // create the Main Class public class GFG { // call Annotation for method and pass values for annotation @Annotation(key = "AvengersLeader", value = "CaptainAmerica") public static void getCustomAnnotation() { try { // create class object for class name GFG Class c = GFG.class; // get method name getCustomAnnotation as Method object Method[] methods = c.getMethods(); Method method = null; for (Method m : methods) { if (m.getName().equals("getCustomAnnotation")) method = m; } // get Annotation of Method object m by passing // Annotation class object as parameter Annotation anno = method.getAnnotation(Annotation.class); // print Annotation Details System.out.println("Annotation for Method Object" + " having name: " + method.getName()); System.out.println("Key Attribute of Annotation: " + anno.key()); System.out.println("Value Attribute of Annotation: " + anno.value()); } catch (Exception e) { e.printStackTrace(); } } // create main method public static void main(String args[]) { getCustomAnnotation(); } }
Annotation for Method Object having name: getCustomAnnotation Key Attribute of Annotation: AvengersLeader Value Attribute of Annotation: CaptainAmerica
Ejemplo 2: Este programa imprime la anotación del método para el tipo de anotación especificado dado como parámetro para getAnnotation() de Method Object que representa el método getCustomAnnotation() de la clase GFG.
En este ejemplo, se utilizan dos clases. Una clase contiene el método principal que crea el objeto del método y aplica el método getAnnotation() y otra clase contiene el método con alguna anotación.
// Program Demonstrate getAnnotation(Class<T> annotationClass) method // of Method Class. import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; public class GFG { public static void main(String[] args) { // get array Method objects Method[] methods = GFGDemoClass.class.getMethods(); // get Annotation SelfCreatedAnnotation annotation = methods[0] .getAnnotation( SelfCreatedAnnotation .class); // Print annotation attribute System.out.println("key: " + annotation.key()); System.out.println("value: " + annotation.value()); } } // Another class on which we want to apply the annotation class GFGDemoClass { private String field; // create annotation @SelfCreatedAnnotation(key = "getField", value = "getting field attribute") public String getField() { return field; } } // create custom annotation having two values @Retention(RetentionPolicy.RUNTIME) @interface SelfCreatedAnnotation { public String key(); public String value(); }
key: getField value: getting field attribute
Referencia: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.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