Java'da bir nesneyi nasıl kopyalarım?

Aşağıdaki kodu göz önünde bulundurun:

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'

Bu yüzden, dumu dumtwoya kopyalamak ve dumtwoyu etkilemeden dumu değiştirmek istiyorum. Ancak yukarıdaki kod bunu yapmıyor. Ben dumda bir şey değiştirdiğimde, aynı değişiklik dumtwoda da oluyor.

Sanırım, dumtwo = dum dediğimde, Java sadece referansını kopyalıyor. Peki, dumun yeni bir kopyasını oluşturmanın ve onu dumtwoya atamanın bir yolu var mı?

Evet. Nesnenizi Derin Kopyalama yapmanız gerekir.

Yorumlar (1)

Eğer ihtiyaç duyarsanız, burada clone() ile ilgili iyi bir açıklama var...

Burada: clone (Java yöntemi)

Yorumlar (0)

Bunu yapmak için nesneyi bir şekilde klonlamanız gerekir. Java'nın bir klonlama mekanizması olmasına rağmen, zorunda değilseniz bunu kullanmayın. Kopyalama işini sizin için yapan bir kopyalama yöntemi oluşturun ve sonra yapın:

dumtwo = dum.copy();

Burada kopyalama işlemini gerçekleştirmek için farklı teknikler hakkında daha fazla tavsiye bulabilirsiniz.

Yorumlar (0)