Memahami Clone() vs. Copy Constructor di Java
Ketidakberkesanan kaedah clone() di Jawa telah mencetuskan perdebatan mengenainya penggunaan terhadap pembina salinan tradisional.
Klon Kaedah
Klon() ialah kaedah contoh yang mengembalikan salinan cetek objek dengan menduplikasi medan dan rujukannya. Walaupun ia berjanji untuk mencipta objek baharu dengan kandungan yang sama, kaedah ini mempunyai hadnya:
Salin Pembina
Pembina salinan ialah pembina khas yang memulakan objek baharu dengan nilai objek sedia ada dalam kelas yang sama. Tidak seperti klon(), pembina salin:
Penggunaan Disyorkan
Memandangkan kelemahan clone(), ia biasanya tidak disyorkan untuk digunakan dalam Java. Pembangun dinasihatkan untuk menggunakan kaedah salinan dalam seperti pembina salinan atau kaedah salinan khusus(...):
// Deep Copy using a Copy Method public Foo deepCopy() { Foo f = new Foo(); // Copy all properties f.setProperty1(this.getProperty1()); f.setProperty2(this.getProperty2()); return f; }
Kesimpulan
Untuk penyalinan objek yang selamat dan boleh dipercayai dalam Java, pembangun harus mengelakkan kekurangan clone() dan memilih teknik penyalinan mendalam seperti pembina salinan atau kaedah salinan tersuai.
Atas ialah kandungan terperinci Clone() vs. Copy Constructor dalam Java: Kaedah Mana Yang Harus Anda Pilih untuk Penyalinan Dalam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!