Considere o código abaixo:
DummyBean dum = new DummyBean();
dum.setDummy("foo");
System.out.println(dum.getDummy()); // prints 'foo'
DummyBean dumtwo = dum;
System.out.println(dumtwo.getDummy()); // prints 'foo'
dum.setDummy("bar");
System.out.println(dumtwo.getDummy()); // prints 'bar' but it should print 'foo'
Então, eu quero copiar o dum
para o dumtwo
e mudar o dum
sem afetar o dumtwo
. Mas o código acima não está fazendo isso. Quando eu mudo algo no dum
, a mesma mudança está acontecendo no dumtwo
também.
Eu acho que, quando eu digo dumtwo = dum
, Java copia apenas a **referência***. Então, existe alguma maneira de criar uma nova cópia do dum
e atribuí-la ao dumtwo
?
Aqui's uma explicação decente de clone()
se você acabar precisando dele...
Para fazer isso você tem que clonar o objeto de alguma forma. Embora Java tenha um mecanismo de clonagem, don'não o utilize se não'não é necessário. Crie um método de cópia que faça a cópia funcionar para você, e então faça:
dumtwo = dum.copy();
Aqui é mais um conselho sobre diferentes técnicas para a realização de uma cópia.