Então gente, eu estou com esse problema. Eu não consigo capturar as anotações de um método utilizando reflexão.
Eu estou fazendo assim:
Minha anotação a ser capturada:
package superPonte.anotacoes;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*
* @author tiagofraga
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ProcessaEvento
{
String nomeEvento();
String tipoDado();
}
E a forma que estou capturando:
..
for ( int i = 0; i < m.length; i++)
{
PublicaEvento publicaEvento = (PublicaEvento)m[i].getAnnotation(PublicaEvento.class);
ProcessaEvento processaEvento = (ProcessaEvento)m[i].getAnnotation(ProcessaEvento.class);
String nmCampo = m[i].getName();
parametros = m[i].getParameterTypes();
listaArgs = new Object[1];
Method chamada = null;
}
..
No caso, m é um vetor com os métodos capturados emMethod m[] = c.getDeclaredMethods();.
E os métodos estão anotado addim:
@PublicaEvento(nomeEvento = "nomeAlbum", tipoDado = "java.lang.String")
public String getNomeAlbum()
{
return nomeAlbum;
}
Porém quando eu rodo o programa, ele ignora solenemente a anotação dos métodos.
Então, como eu faço para capturar essas anotações dos métodos, uma vez que elas são partes atuantes da minha regra de negócio?