15 Mayıs 2009, Cuma
Nasıl Java bir nesne kopyalayabilirim?
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'
Yani kopyalamak istiyorum '' dumtwo' ve değiştirmek istiyorum '' etkilemeden ''. dumtwo dum dum Ama yukarıdaki kod bunu yapıyor. Ben'', 'dumtwo' de. " oluyor aynı değişikliği dum bir şey değiştiğinde
= Dum dumtwo dediğimde, Java kopya referansı sadece sanırım. , Yeni bir kopyasını oluşturmak için herhangi bir yolu var '' ve 'ata' ? dumtwo dum yani
CEVAP
15 Mayıs 2009, Cuma
Kopya yapıcı oluşturun:
class DummyBean {
private String dummy;
public DummyBean(DummyBean another) {
this.dummy = another.dummy; // you can access
}
}
Her nesne, nesneyi kopyalamak için kullanılan klonlama yöntemi vardır, ama sakın kullanma. Bir sınıf oluşturun ve uygunsuz klon yöntemi yapmak için çok kolay bir yol. Eğer bunu yapacaksanız, Joshua Bloch bu konuda söyleyecek ne en azından okuyunEffective Java.
Bunu Paylaş:
Nasıl bir nesne's sınıfı (Java) b...
Nasıl Java nesne derin bir kopyasını y...
Liste başlatmak için nasıl<Dize>...
Java nasıl bir int için bir Nesne fırl...
Java nasıl bir Tarih gece yarısı bugün...