Red de conocimiento informático - Aprendizaje de programación - java Obtiene la anotación del método que llama a este método

java Obtiene la anotación del método que llama a este método

import?java.lang.annotation.Retention;

import?java.lang.annotation.RetentionPolicy;

@Retention(value= RetentionPolicy.RUNTIME)

¿público?@interfaz?MiAnotación?{

Cadena?nombre();

}

público?clase?AnnonTestA{

público ?void?methodA(){

}

@MyAnnotation(name="111")

public?void?methodA(String?a)?throws ?Excepción{

AnnonTestB.methodB("methodA", String.class

}

}import?java.lang.annotation.Method;

público; AnnonTestB; {

público; void; métodoB(Cadena; nombre del método;? gt;... ?tipos de parámetros);

AnnonTestA;annonTestA;=;new;AnnonTestA();

//Obtener la instancia de clase de AnnotationTest2

Classlt;AnnonTestAgt;?c?= ? AnnonTestA.class;

///? Obtiene la instancia del método que se va a procesar

Method [][method]=?c.getMethod(methodName,?parameterTypes);

Método[][método]=?c.getMethods();

//Determinar si el método contiene la anotación MyAnnotation

if?(method .isAnnotationPresent(MyAnnotation. class))?{

//Obtener la instancia de anotación MyAnnotation de este método

MyAnnotation?myAnnotation?=?method

. getAnnotation(MyAnnotation.class) ;

//Ejecutar método

// método.invoke(annonTestA, ?" 12345");

///? Obtener myAnnotation

String?value1?=?myAnnotation.name();

System.out.println(value1);

}

///? Obtener todas las anotaciones sobre los métodos

Annotation[]?annotations?=?method.getAnnotations();

for?(Annotation?annotation?:?annota

ciones)?{

System.out.println(annotation);

}

}

}¿importar?

importar?java.lang.reflect.Method;

public?class?TestString?{

public?static?void?main(String[]?args)?throws ?Excepción?{

AnnonTestA?annonTestA?=?new?AnnonTestA();

annonTestA.methodA("123");

}

}

Se ha proporcionado el código. Si no lo comprende, haga un seguimiento.

Dirección de referencia:/bao19901210/article/details/17201173