Estou dando uma olhada, e vi que é possivel, criar classes dinamicas, porem a minha duvida é se é possivel criar uma classe similar, porem com retornos diferentes, ou isso seria apenas um sonho ??
Eu já cheguei a mexer no CGLIB, mas pra fazer coisa simples, que era acrescentar uma implementação padrão de uma interface a várias classes. Meio que fácil, porque o compilador não me proíbe de fazer um cast pra qualquer interface (mesmo que a classe não a implemente).
Agora, mesmo que você consiga mudar o retorno de um método (não acho que seja impossível), ainda assim o compilador irá reclamar da atribuição de variável; e você só terá a opção de invocar o método via API de reflection.
P
palmadias
bom dia!
Uma alternativa para criar proxy dinamico tem no livro “Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering”.
No capitulo 16 desse livro tem um técnica interessante usando java puro sem a necessidade de usar uma API terceira.
abraços.
Lavieri
usar java puro é tenso ^^
cglib rox =x
reinventar a roda é algo complicado, nem sempre vc consegue pensar nas N possibilidades
barenko
palmadias:
bom dia!
Uma alternativa para criar proxy dinamico tem no livro “Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering”.
No capitulo 16 desse livro tem um técnica interessante usando java puro sem a necessidade de usar uma API terceira.
abraços.
Excelênte dica! Dei uma olhada e o livro tem ótimos exemplos de várias coisas interessantes! Obrigado pela referência!
Lavieri
É que estou usando proxy para montar criteira… ate agora a montagem esta assim:
Criteria<Telefone> query = Criteria.forClass(Telefone.class).setFirstResult(0).setMaxResults(20);Restriction<Telefone> restrict = query.addRestriction();restrict.isEquals(55).getDdi();restrict.isBetween(83,85).getDdd();query.addOrder().ascIgnoreCaseBy().getNumero();//aquivemalisadostelefonesdoddi55comdddentre83a85List<Telefone> telefones = genericDao.list(query);//poderiaterusadogenericDao.find(query); para encontra o primeiro
eu gostaria de poder trocar a ordem entre o isEqual e o getDdi por exemplo… o ideal seria assim