Hoe kopieer ik een object in Java?

Kijk eens naar de code hieronder:

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'

Dus, ik wil dum kopiëren naar dumtwo en dum veranderen zonder de dumtwo te beïnvloeden. Maar de code hierboven doet dat niet. Als ik iets verander in dum, gebeurt dezelfde verandering ook in dumtwo.

Ik denk, dat als ik zeg dumtwo = dum, Java alleen de verwijzing kopieert. Dus, is er een manier om een nieuwe kopie te maken van dum en deze toe te wijzen aan dumtwo?

Ja. Je moet je object Diepe Kopie.

Commentaren (1)

Hier's een fatsoenlijke uitleg van clone() als je het uiteindelijk nodig hebt...

Hier: clone (Java methode)

Commentaren (0)

Om dat te doen moet je het object op een of andere manier klonen. Hoewel Java een kloonmechanisme heeft, gebruik het niet als het niet hoeft. Maak een kopieermethode die het kopieerwerk voor je doet, en doe dan:

dumtwo = dum.copy();

Hier is wat meer advies over verschillende technieken om een kopie tot stand te brengen.

Commentaren (0)