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

  • ODN

    ODN

    26 Kasım 2006
  • Press Start

    Press Start

    4 HAZİRAN 2006
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006