Java'da clone () uygulama konusunda hızlı bir google yaptım ve şunu buldum: http://www.javapractices.com/topic/TopicAction.do?Id=71
Aşağıdaki yorumu var:
kopyalama yapıcıları ve statik fabrika yöntemleri, klonlamaya bir alternatif sağlar ve uygulanması çok daha kolaydır.
Tek yapmak istediğim derin bir kopya çıkarmak. Clone () 'u uygulamak çok mantıklı görünüyor, ancak bu yüksek Google sıralamalı makale beni biraz korkutuyor.
İşte fark ettiğim sorunlar:
Kopya oluşturucular Generics ile çalışmaz.
İşte derlenmeyecek bazı sözde kodlar.
public class MyClass<T>{
..
public void copyData(T data){
T copy=new T(data);//This isn't going to work.
}
..
}
Örnek 1: Genel bir sınıfta bir kopya oluşturucu kullanma.
Fabrika yöntemlerinin standart isimleri yoktur.
Yeniden kullanılabilir kod için bir arayüze sahip olmak oldukça güzel.
public class MyClass<T>{
..
public void copyData(T data){
T copy=data.clone();//Throws an exception if the input was not cloneable
}
..
}
Örnek 2: Genel bir sınıfta clone () kullanma.
Klonun statik bir yöntem olmadığını fark ettim, ancak yine de tüm korunan alanların derin kopyalarını almak gerekmez mi? Clone () uygularken, klonlanamayan alt sınıflarda istisnalar atmak için ekstra çaba benim için önemsiz görünüyor.
Bir şey mi kaçırıyorum? Her görüşe değer verilir.