El método java.lang.reflect .Method.getDeclaredAnnotations() de la clase Method devuelve las anotaciones declaradas solo en el método e ignora las anotaciones heredadas por método. Si no hay anotaciones declaradas directamente en el método, la array de anotaciones devuelta está vacía. La modificación de la array devuelta no tendrá efecto en las arrays devueltas a otras personas que llaman. Todas las arrays de anotaciones devueltas son independientes entre sí cuando las llama la persona que llama diferente.
Sintaxis:
public Annotation[] getDeclaredAnnotations()
Valor devuelto: este método devuelve una array de anotaciones directamente presentes en este elemento
El siguiente programa ilustra el método getDeclaredAnnotations() de la clase Method:
Programa 1: este programa imprime las anotaciones declaradas solo en el método e ignora las anotaciones heredadas por método usando el método getDeclaredAnnotations() en el objeto Método.
// Program Demonstrate getDeclaredAnnotations() // method of Method Class. import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; import java.lang.annotation.Annotation; // create a custom Annotation @Retention(RetentionPolicy.RUNTIME) @interface customAnnotation { // 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 @customAnnotation(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 an array of Annotations Annotation[] annotation = method.getDeclaredAnnotations(); // get annotation from the array of annotation // and print the details for (Annotation a : annotation) { customAnnotation self = (customAnnotation)a; // Print annotation attribute System.out.println("Annotation details"); System.out.println("key: " + self.key()); System.out.println("value: " + self.value()); } } catch (Exception e) { e.printStackTrace(); } } // create main method public static void main(String args[]) { getCustomAnnotation(); } }
Annotation details key: AvengersLeader value: CaptainAmerica
Programa 2: este programa imprime las anotaciones declaradas solo en el método e ignora las anotaciones heredadas por método usando el método getDeclaredAnnotations() en el objeto Método de otra clase.
En este programa hay dos clases diferentes. Una clase contiene un método con alguna anotación y otra clase contiene el método principal. En el método principal, se crea el objeto del método para el método de otra clase que contiene la anotación. Después de crear un objeto de método utilizando el método getDeclaredAnnotations(), se recopilan las anotaciones declaradas solo en el método y, después de recopilar la anotación, el programa de información imprime el resultado.
// Program Demonstrate getDeclaredAnnotations() method // of Method Class. import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; import java.lang.annotation.Annotation; // create custom annotation having two values @Retention(RetentionPolicy.RUNTIME) @interface SelfCreatedAnnotation { public String key(); public String value(); } // Another class on which we want to apply an annotation class GFGDemoClass { private String field; // create annotation @SelfCreatedAnnotation(key = "getField", value = "getting field attribute") public String getField() { return field; } } public class GFG { public static void main(String[] args) { // get array Method objects Method[] methods = GFGDemoClass.class.getMethods(); // get array of Annotations Annotation[] annotation = methods[0] .getDeclaredAnnotations(); // get annotation from the array of annotation // and print the details for (Annotation a : annotation) { SelfCreatedAnnotation self = (SelfCreatedAnnotation)a; // Print annotation attribute System.out.println("key: " + self.key()); System.out.println("value: " + self.value()); } } }
key: getField value: getting field attribute
Referencia: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html#getDeclaredAnnotations–
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA