我有一个公司对象列表。我试图克隆此列表:使用克隆进行深层复制
public static List<Company> cloneList(List<Company> list) {
List<Company> clone = new ArrayList<Company>(list.size());
for(Company item: list) clone.add(item.clone());
return clone;
}
但是我的编译器说:
Multiple markers at this line
- The method add(Company) in the type List<Company> is not applicable for the arguments
(Object)
这是为什么不可能作出深刻副本clone()
?
Thx为您的答案!不过,我的编译器现在让我回想起来:'类型Object中的方法clone()不可见“# – user2051347
Thx for your answer!你会把'/ *克隆* /'放到什么位置? – user2051347
使用super.clone创建对象副本的代码,然后用该状态的副本替换所有对可能不可共享的可变状态的引用。这也适用于可传递到达的状态。实现克隆可以快速复杂化。我建议你不要使用clone()。改为使用复制构造函数或复制工厂。 – Pyranja