Bom dia pessoas,
Estou tentando retornar o valor de uma classe anotada com uma anotação própria minha. Segue a interface da anotação:
[code]package interfaces;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Models {
String value();
}
[/code]
Ai anoto um JFrame assim:
[code]@Models(value=“models.Cliente”)
public class NovoCliente extends javax.swing.JFrame {
//blablabla
}[/code]
Após isso carrego a classe, e tento receber o valor de “value”:
[code]Class classe = Class.forName(nomeDaClasse);
System.out.println("ANNOTATION: " + classe.getAnnotation(Models.class).toString());
[/code]
O que me retorna a seguinte String no console: “@interfaces.Models(value=models.Cliente)”
Ai está o problema, pois eu queria retornar apenas “models.Cliente”, e em um método ou campo de uma classe eu usaria:
classe.getAnnotation(Models.class).value()
Mas como se trata de uma classe, o value não fica disponível diretamente - o que me retornaria a String no console “models.Cliente”, apenas.
Eu até consigo pegar o valor certinho usando replace da String, mas é muita gambi, e queria saber fazer corretamente com uma classe. Se alguem puder dar uma luz, pois estou tentando isso há 3 dias sem sucesso.
Muito obrigado desde já, abraços!