Proxy Dinamicos  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

Duvida...

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 ??

por exemplo


public class Teste {
public void bla();
public void foo();
}

e entao usar algo como

createDinamico(Teste.class).bla().foo();

ou seja, o retorno de bla() mudaria de void para a propria classe... isso é possivel ?

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
Leonardo3001
GUJ Ranger

Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline

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.

This message was edited 1 time. Last update was at 13/10/2009 09:05:49


Leonardo Veríssimo
-------------------------------------------------
Objectzilla
[WWW]
palmadias
JavaTeenager

Membro desde: 08/07/2008 07:41:08
Mensagens: 192
Localização: São Paulo/SP
Offline

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.

http://palmadias.blogspot.com/
[WWW] [MSN]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

usar java puro é tenso ^^

cglib rox =x

reinventar a roda é algo complicado, nem sempre vc consegue pensar nas N possibilidades

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
barenko
JavaBaby
[Avatar]

Membro desde: 07/04/2008 21:09:30
Mensagens: 81
Offline

palmadias wrote: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!

This message was edited 1 time. Last update was at 13/10/2009 09:58:21

[Email]
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

É que estou usando proxy para montar criteira... ate agora a montagem esta assim:



eu gostaria de poder trocar a ordem entre o isEqual e o getDdi por exemplo.... o ideal seria assim



mas como o retorno dos métodos de Telefone são já definidos, não consigo fazer o encadeamento como queria =/

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team