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.
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
Apesar de ter resolvido, fiquei curioso, porque o que você queria fazer é um comportamento padrão.
Pessoa:
public class Pessoa {
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
Classe A onde você cria o objeto:
public void seuMetodoQualquer(){
Pessoa p = new Pessoa();
p.setNome("GUJ");
//Classe B
B b= new B();
//envia o objeto pessoa para método da classe B
b.mudaNome(p);
System.out.println("Nome DEPOIS :"+p.getNome());
}
Classe B:
...
public Pessoa mudaNome(Pessoa p){
System.out.println("Nome ANTIGO " +p.getNome());
p.setNome("TESTE GUJ");
return p;
}
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:
[quote=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.[/quote]
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.