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

  • Fuse

    Fuse

    21 Kasım 2005
  • itfigueres

    itfigueres

    12 EKİM 2013
  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011