的深層副本我想在Java中的泛型列表的深層副本。我怎樣才能改善這個代碼?一個泛型列表
public interface Deep{}
public class Class1() implements Deep{
public Class1(Class1 o){
//implementation of deep copy
}
}
public class Class2() implements Deep{
public Class2(Class2 o){
//implementation of deep copy
}
}
名單的另一類
實施deepcopy的:
public List<Deep> deepCopy(List<Deep> inList){
if(inList.get(0) instanceof Class1){
List<Deep> newList=new ArrayList<Class1>();
for (Deep deep : inList)
newList.add(new Class1((Class1) deep));
}
else if(inList.get(0) instanceof Class2){
List<Deep> newList=new ArrayList<Class2>();
for (Deep deep : inList)
newList.add(new Class2((Class2) deep));
}
}
這裏是電話:
List<Class1> list= new List<Class1>();
//fill list...
List<Class1> aCopy=(List<Class1>) deepCopy(list);
您可以通過不試圖做到這一點可能改善它。如果您絕對必須進行深層複製,請在呼叫站點從頭開始實施;試圖做到這一點是不可行的。 – 2013-04-20 18:06:12