Ler Annotations de uma classe em um arquivo jar = null

0 respostas
brunosprak

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 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.

Criado 22 de março de 2007
Respostas 0
Participantes 1