Como injetar código na classe com annotations

3 respostas
Fabiano_Freitas

Amigos,

Estou querendo criar algumas anotações para injetar código em classes java. Alguém sabe como fazê-lo ?

Para ficar mais claro, por exemplo, ter que ficar a toda classe escrevendo um monte de métodos get e set, mesmo que gerados pela IDE, encaro como uma maneira arcaica de programar, até o C# tem anotação para get/set, e o java não (até onde sei). Então quero criar anotações para injetar códigos, como este, dentre outros, enquanto escrevo o código.

A produtividade aumenta muito assim. Mas para isso o código deve ser “exergado” mesmo que não exista, por exemplo:

public class GetAnnotation {

    @Get  /* <<-- deveria injetar o getNumber() */
     private int number;


}

/*---------*/

public class Test{

   public static void main (String args[]){
   
      System.out.println(new GetAnniotation().getNumber()); /* << acessaria o método, sem acusar a sua falta em código */
  }
}

Alguém sabe ?

Valeu !!!

3 Respostas

T

Você precisaria fazer um preprocessador que gerasse um .class com os getters e setters, para que você pudesse enxergar os getters e setters que você não especificou diretamente no seu código. (Estou supondo que você esteja usando uma IDE qualquer, como o NetBeans ou o Eclipse, para poder fazer o “auto-complete”; eles dependem do .class mas não lêem ou interpretam as anotações no nível que você deseja.

Annotations não conseguem modificar a estrutura do seu código; são apenas “anotações” - o runtime não pode inserir, nesse caso, membros ou métodos.

erdanielli

Isso chegou a ser proposto p/ o Java 7, mas parece que foi negado. Este artigo tem umas ideias interessantes sobre o assunto.

Abraço!

Felagund

Você pode procurar sobre o Javassist que faz a inejção de códigos nos arquivos binarios do java (.class), mas infelizmente você não vai poder chamar esses metodos em desenvolvimento, so executando a aplicação.

[]'s

Criado 26 de fevereiro de 2009
Ultima resposta 27 de fev. de 2009
Respostas 3
Participantes 4