Rozważ poniższy kod:
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'
Tak, chcę skopiować dum
do dumtwo
i zmiana dum
bez wpływania na dumtwo
. Ale powyższy kod tego nie robi. Kiedy coś dum
zmieniam, zachodzi dumtwo
również ta sama zmiana .
Kiedy mówię dumtwo = dum
, Java kopiuje tylko odniesienie . Czy jest więc jakiś sposób na stworzenie nowej kopii dum
i przypisanie jej dumtwo
?