Oi pessoal, estou tentando simplesmente ler anotações de uma classe que está dentro de um arquivo jar e não estou conseguindo.
A anotação seria a seguinte:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AnotacaoTeste{
String[] valor();
}
E a classe com as anotações (Test.class) tem o seguinte metodo:
@FLOAppTest(valor={"testando1","testando2"})
public String echo(String frase){
return frase;
}
Daí eu coloquei tudo em jar files (2 jars, na verdade, um pra cada um).
Depois de carregar a classe Test (seja com JarClassLoeader ou com Class.forname, etc) os annotations vêem null!:
Method[] methods = clazz.getMethods();
//ao varrer o array e ao chegar no metodo "echo", aí a chamada abaixo retorna falso
boolean tahDandoFalso = method.isAnnotationPresent(AnotacaoTest.class);
Observação1: se em vez de usar o .jar eu colocar a classe no meu projeto normal, daí eu consigo recuperar as annotations sim. O problema está no jar.
Observação2: já tentei fazer Class.forName passando tanto true quanto falso em um dos métodos sobrecarregados… e nada.