gpt4 book ai didi

java - 通用列表的深拷贝

转载 作者:行者123 更新时间:2023-11-30 11:33:28 28 4
gpt4 key购买 nike

我想用 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
}
}

在另一个类中实现 List 的 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);

最佳答案

您可以使用 Java 库的 Cloneable,而不是为此提供您自己的接口(interface) Deep。 http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Cloneable.html

大多数java类已经实现了这个接口(interface),比如ArrayList等

关于java - 通用列表的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16120143/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com