Olá pessoal,
eu gostaria de criar uma annotation que insira uma propriedade na minha classe
exemplo
@InsereProperty
ele insira em todas as classes uma propriedade
private int quantidade;
public getQuantidade(){
return quantidade;
}
Olá pessoal,
eu gostaria de criar uma annotation que insira uma propriedade na minha classe
exemplo
@InsereProperty
ele insira em todas as classes uma propriedade
private int quantidade;
public getQuantidade(){
return quantidade;
}
Como assim?
Voce quer que todas classes que tenham essa anotação tenham essa propriedade?
Se for é impossivel.
A não ser que voce escreva um compilador.
Você pode utilizar orientação a aspectos também para atingir esse tipo de objetivo…
Um ClassLoader personalizado também consegue fazer isso…
Mark_Ameba
eu to testando isso com aspectJ, conseguindo eu posto aqui.
Você pode utilizar orientação a aspectos também para atingir esse tipo de objetivo…Um ClassLoader personalizado também consegue fazer isso…
você tem algum exemplo ou documentação de aspectJ ?
Tenho não… tem que olhar no google mesmo… mas se tiver alguma dúvida… posta aqui que eu posso ajudar…
Voce já sabe como funciona orientacao a aspectos? Advice, pointcut, etc?
Aliás… lembrei que fiz um trabalho sobre isso na faculdade… só que o trabalho … se eu ainda tiver ele… deve estar no outro computador…
Caso consiga o trabalho te mando…
Vai demorar um pouco pq tá em outro computador… mas hoje te respondo…
Aliás… lembrei que fiz um trabalho sobre isso na faculdade… só que o trabalho … se eu ainda tiver ele… deve estar no outro computador…Caso consiga o trabalho te mando…
Vai demorar um pouco pq tá em outro computador… mas hoje te respondo…
obrigado, eu ja fiz alguma coisa aqui com aspecto, pointcut, advice. interceptei métodos, construtores, porém nao consegui pegar o parâmetro passado.
exemplo uma annotation de log. pegar o parâmetro que foi passado e logar no banco.
Sobre anotações, dê uma olhada aqui e veja se ajuda em algo:
http://www.javasimples.com.br/mundo-java/annotations-o-que-pra-que-serve/
Achei o trabalho que fiz sobre orientação a aspectos… vou publicar ele na internet e já já… passo o link
Enquanto isso, poderá ver os screen casts que montei sobre o trabalho…
Exemplo de logging
http://www.javaframework.org/portal/arquivos/log.htm
Exemplo de uso de anotações para marcar um parâmetro de um método como obrigatório
http://www.javaframework.org/portal/arquivos/req.htm
São exemplos simples… mas interessantes…
Voce quer que todas classes que tenham essa anotação tenham essa propriedade?
Se for é impossivel.
A não ser que voce escreva um compilador.
Na verdade, e possivel! O Bruno ja deu a dica: pelo APT.
Aqui eu falo bastante disso:
http://blog.caelum.com.br/2009/12/08/metaprogramacao-em-java-o-papel-do-apt/
Mas usar anotacoes pra isso é bastante magica, gera um codigo complexo, dificil de entender e de dar manutencao. Deve-se tomar cuidado.
Muito legal o artigo…
Uma pergunta para os conhecedores de APT…
É possivel eu atualizar uma classe, sem ela estar anotada com nada?
Por exemplo… eu consigo referencia para todas as classes, estando anotadas ou nao?!
Trabalho sobre orientação a aspectos
O que é programação orientada a aspectos?
http://www.javaframework.org/portal/2010/04/14/o-que-programao-orientada-a-aspectos/
Voce quer que todas classes que tenham essa anotação tenham essa propriedade?
Se for é impossivel.
A não ser que voce escreva um compilador.Na verdade, e possivel! O Bruno ja deu a dica: pelo APT.
Aqui eu falo bastante disso:
http://blog.caelum.com.br/2009/12/08/metaprogramacao-em-java-o-papel-do-apt/Mas usar anotacoes pra isso é bastante magica, gera um codigo complexo, dificil de entender e de dar manutencao. Deve-se tomar cuidado.
Ta… fiquei incredulo com isso.
Gostei do artigo vou estudar melhor depois.