SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Saquet

    Caroline Saq

    1 EKİM 2011
  • CHISTOSITOJAJA

    CHISTOSITOJA

    27 HAZİRAN 2010
  • MkElite

    MkElite

    13 NİSAN 2012