[não resolvido]Como mudar dinamicamente o retorno de métodos?

5 respostas
Psycopata

Gente, eu criei um método que recebe o endereço de uma classe,uma instancia dessa classe e um resultSet. Daí o método então preenche o beans com os dados do banco de dados e retorna um arrylist como resultado. Funciona perfeitamente bem, e em projetos grandes, onde eu mapeio vários objetos, isso é uma mão na roda.

Só que tem um problema, eu ivoco o método, e tenho que converter o resultado num vetor de objetos desejados, uma vez que ele retorna um ArryList.

Ok, teria como eu fazer que o método, ou a classe, de forma dinÂmica, altere o seu retorno, automatizando ainda mais o processo?

Sabe, eu pensei no poliformismo, mas esse eu ainda tenho que fazer implementaçõe sextras. o que eu queria é simplificar ao máximo a produção, fazendo assim:

XBen [] X = new XBean():
YBen [] Y = new YBean():
VBen [] V = new VBean():
TBen [] T = new TBean():

X = realizaPesquisa ();

Y = realizaPesquisa ();

V = realizaPesquisa ();

T = realizaPesquisa ();

?

Simples, né, hehehe

5 Respostas

Romeo

Amigão, não sei a resposta do sua pergunta, mas da uma lida neste tópico que vai te ajudar aqui…

http://www.guj.com.br/posts/list/55992.java

ViniGodoy

Acho que isso não é possível não…

Felizmente (ou será infelizmente) java não é linguagem de script e não irá reconhecer sua variável pelo tipo mais específico.

O único jeito de retornar vários valores seria retornando um Object e recorrendo a casts.

Psycopata

ViniGodoy:
Acho que isso não é possível não…

Felizmente (ou será infelizmente) java não é linguagem de script e não irá reconhecer sua variável pelo tipo mais específico.

O único jeito de retornar vários valores seria retornando um Object e recorrendo a casts.

Pois é, eu pensei em uma outra abordagem: criar uma classe abstrata e depois implementar o retorno. eu tenho que ver se isso não almenta a complexidade dos projetos. Afinal, eu tenho mesmo que crira um método para cada resultado. E esse é bem mais simples, que implementar a captura de dados para toda e qualquer pesquisa.

Esse métodos que eu tenho que implementar praticamente faz a chamda e depois um cast.

Psycopata

Romeo:
Amigão, não sei a resposta do sua pergunta, mas da uma lida neste tópico que vai te ajudar aqui…

http://www.guj.com.br/posts/list/55992.java

Eram duas da manhã quanto eu tive a idéia. Porém naõ me veio nada na cabeça quanto ao título, e ai lancei mão desse ai mesmo

melhorou agora?

ViniGodoy

Você pode implementar uma classe só e usar generics.

public class Bean<T> { public T[] realizaPesquisa(...) { //implementação do método return t; } }

E depois, na hora de usar:

Bean<UmaClasseQualquer> classBean = new Bean<UmaClasseQualquer>();

UmaClasseQualquer[] lista = classBean.realizarPesquisa(...);

Para mais informações leia o Generics Tutorial, da própria sun.

Criado 31 de março de 2007
Ultima resposta 31 de mar. de 2007
Respostas 5
Participantes 3