freakazoid
// Desta forma a variável de referência p2 vai aportar para o mesmo objeto de p1
// Logo p1 e p2 podem modificar o estado do mesmo objeto.
Pessoa p1 = new Pessoa("Carlos");
Pessoa p2 = p1;
O que você precisa fazer é criar um novo objeto.
Sugestão 1: Você pode sobrecarregar o construtor da classe Pessoa para criar um “clone”:
public class Pessoa(){
private String nome;
//construtor padrão
public Pessoa(){}
//construtor Clone
public Pessoa(Pessoa pessoa){
this.nome = pessoa.getNome();
}
public Pessoa(String nome){
this.nome = nome;
}
// gets e sets...
}
Teste:
public class Teste{
public static void main(String [] args){
Pessoa p1 = new Pessoa("Carlos");
Pessoa p2 = new Pessoa(p1);
p1.setNome("Fulano");
System.out.println(p1.getNome());
System.out.println(p2.getNome());
}
}
Sugestão 2: usar Reflection
Abs!
freakazoid
xxmayconxx
Na verdade o método que usei segue essa mesma idéia, só queria saber mesmo se existia alguma forma menos “manual” de resolver isso
valeu!