Como obter classes que utilizam certos annottaions especificos?

3 respostas
alexandref93

Olá, a minha dúvida é como obter todas as classes utilizam um certo tipo de annottations?
Por exemplo: Eu tenho várias classes que possuem o @AnnottationsQualquer, dae num outro class qualquer eu quero obter todas as classes que possuem esse @AnnottationsQualquer, como seria isso??? Já tentei procurar em vários lugar, e não obtive nenhum resultado ou se estou pesquisando de forma errada, acredito que isso seja possível, por que o mesmo acontece no VRaptor, quando declara alguma class com @Resources ou qualquer outro annottations do framework, tentei procura no código fonte do VRaptor, mas não consegui indentificar…

Agradeço desde já!

3 Respostas

Gustavo_Marques

Então, uma forma seria:

1- Liste todas as classes do projeto:

2- Itere pelas classes retornadas, e para cada Class verifique se ela tem a anotação que deseja

for(Class clazz: classes){
   MyAnnotation annotation = clazz.getAnnotation(MyAnnotation.class);
   if(annotation != null){
      System.out.println("essa classe tem a anotação!");
   }
}

Guarde o resultado (quais classes possuem a annotation) em algum lugar, tipo contexto de aplicação application. para não ficar fazendo isso toda hora. Assim só se carrega na inicialização da aplicação.

alexandref93

Consigo aplicar isso normal no ambiente web?

alexandref93

Putz… problema resolvido… obrigado pela ajuda :smiley:

Criado 29 de janeiro de 2012
Ultima resposta 29 de jan. de 2012
Respostas 3
Participantes 2