Galera, eu dei uma procurada nos tópicos mas num achei nada sobre como passar endereço de memória como referência.
Eu consigo passar o endereço da memória de uma StringBuffer para uma nova janela, e o valor alterado nessa janela se refletirá na que chamou porém eu queria fazer isso com um objeto que é um bean do meu projeto.
Basta que vc utilize os métodos set do seu Bean que vc está alterando seu objeto…
Banzai10
No JAVA assim como a maioria das linguagens OO, sempre passa objetos compostos (classes, não tipos básicos) como referência, pois o custo de processamento é menor já que não é preciso fazer uma cópia do objeto para outro espaço de memória.
A partir da Classe A eu chamo a Classe B que recebe o endereço de memória do Objeto X e altera as informações.
Quando eu voltar a Classe A o Objeto X estará setado com os dados.
Eu consigo fazer isso com StringBuffer.
Eu crio a StringBuffer na Classe A, passo o endereço de memória para a Classe B.
Em classe B eu faço StringBuffer.append(“algumacoisa”).
Em Classe A eu dou um sout(StringBuffer.toString()).
Ele imprime: algumacoisa
Não quero usar variável global.
jj_df
Vlw Galera, resolvi com Hashtable fazendo igual faço StringBuffer!!!
Javabuntu
Apesar de ter resolvido, fiquei curioso, porque o que você queria fazer é um comportamento padrão.
publicvoidseuMetodoQualquer(){Pessoap=newPessoa();p.setNome("GUJ");//Classe BBb=newB();//envia o objeto pessoa para método da classe Bb.mudaNome(p);System.out.println("Nome DEPOIS :"+p.getNome());}
Classe B:
...
publicPessoamudaNome(Pessoap){
System.out.println("Nome ANTIGO "+p.getNome());p.setNome("TESTE GUJ");returnp;}
Se você rodar este código a saída será:
Nome ANTIGO: GUJ
Nome DEPOIS: TESTE GUJ
exatamente o que você queria, não entendi realmente o que precisava, se o que você descreveu é exatamente o padrão. :roll:
jj_df
Estou passando o objeto de uma janela pra outra (SWING).
Entenda Classe A (Janela1) e Classe B (Janela2).
Mas vlw a abordagem sobre referência.
Javabuntu
jj_df:
Estou passando o objeto de uma janela pra outra (SWING).
Entenda Classe A (Janela1) e Classe B (Janela2).
Mas vlw a abordagem sobre referência.
Ok. Independente do problema acima, quando usei swing a um tempinho atrás, tive alguns problemas que foram resolvidos com o pattern Observer. Caso não esteja usando, fica aí observação para utilização futuras.