Tengo 2 tipos de anotación Java, digamos XA y YA. Ambos tienen algún método(). Analizo el código fuente y recupero el objeto Anotación. Ahora me gustaría dinámicamente lanzar la anotación al tipo real de ella para poder llamar al método(). ¿Cómo puedo hacerlo sin la declaración instanceof
? Realmente quiero evitar la fuente de conmutación. Necesito algo como esto:Java anotación tipografía dinámica
Annotation annotation = getAnnotation(); // I recieve the Annotation object here
String annotationType = annotation.annotationType().getName();
?_? myAnnotation = (Class.forName(annotationType)) annotation;
annotation.method(); // this is what I need, get the method() called
? _? significa que no tengo idea de cuál sería mi tipo de anotación. No puedo usar la clase base para mis anotaciones XA y YA, ya que la herencia en las anotaciones no está permitida. ¿O es posible hacerlo de alguna manera?
Gracias por cualquier sugerencia o ayuda.
Esto también funciona con métodos y campos. –
Esto no resuelve mi problema. Necesito declarar esta línea para cada MyAnnotationType que uso. classType.getAnnotation (YourAnnotationType.class); Entonces volverá a parecerse al interruptor. –