Rumah > Java > javaTutorial > Clone() vs. Copy Constructor dalam Java: Mana Yang Perlu Anda Gunakan?

Clone() vs. Copy Constructor dalam Java: Mana Yang Perlu Anda Gunakan?

Barbara Streisand
Lepaskan: 2024-11-29 18:29:17
asal
658 orang telah melayarinya

Clone() vs. Copy Constructor in Java: Which Should You Use?

Membandingkan Clone() dan Copy Constructor dalam Java

Timbul persoalan: pendekatan manakah yang lebih digalakkan di Java, kaedah Clone() atau salinannya pembina?

Jawapan:

Jawapannya jelas: elakkan menggunakan kaedah Clone() sama sekali. Ia dianggap secara meluas sebagai "pecah", kerana ia boleh mengakibatkan tingkah laku yang tidak dijangka.

Kaedah Clone() telah diperkenalkan di Java untuk mencipta salinan objek yang sama. Walau bagaimanapun, ia mengalami beberapa kelemahan:

  • Perubahan Tidak Serasi: Pengubahsuaian yang dibuat pada klon tidak ditunjukkan dalam objek asal.
  • Keterlihatan Dilindungi : Kaedah Clone() dilindungi, menjadikannya biasanya tidak boleh diakses subkelas.
  • Pengklonan Objek: Ia tidak mengendalikan pengklonan objek yang melaksanakan Boleh Diklon.

Daripada menggunakan Klon(), ia disyorkan untuk melaksanakan pembina salinan yang menyalin medan objek secara manual. Berikut ialah contoh:

public Foo copyFoo (Foo foo) {
  Foo f = new Foo();
  // Copy all properties from the original object into the new one
  return f;
}
Salin selepas log masuk

Kaedah ini memastikan objek baharu dengan sifat yang sama dicipta, mengelakkan pengehadan kaedah Klon().

Atas ialah kandungan terperinci Clone() vs. Copy Constructor dalam Java: Mana Yang Perlu Anda Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan