Betrachten Sie den folgenden Code:
DummyBean dum = new DummyBean();
dum.setDummy("foo");
System.out.println(dum.getDummy()); // gibt 'foo' aus
DummyBean dumtwo = dum;
System.out.println(dumtwo.getDummy()); // gibt 'foo' aus
dum.setDummy("bar");
System.out.println(dumtwo.getDummy()); // gibt 'bar' aus, aber es sollte 'foo' ausgeben
Also möchte ich dum
nach dumtwo
kopieren und dum
ändern, ohne dumtwo
zu beeinflussen. Aber der obige Code tut das nicht. Wenn ich etwas in dum
ändere, geschieht die gleiche Änderung auch in dumtwo
.
Ich vermute, wenn ich dumtwo = dum
sage, kopiert Java nur die Referenz. Gibt es also einen Weg, eine frische Kopie von dum
zu erstellen und sie dumtwo
zuzuweisen?