java Obtiene la anotación del método que llama a este método
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