【发布时间】:2011-03-25 12:19:46
【问题描述】:
我研究了 Java 按值传递对象引用,为了制作对象的本地副本,我可以使用 clone() 或复制构造函数。我还查看了深/浅拷贝以及 Stack Overflow 上的几篇文章。
我在看这个例子:
List<String> list = new ArrayList<String>();
String one = "one"
list.add(one);
我读过的只有几篇文章提到 ArrayList 实现了可克隆,但并没有真正说明如果类型是 List,而不是不实现可克隆的 ArrayList,如何制作“list”的本地副本。
如果“list”是 ArrayList 类型,我可以调用 clone()。
ArrayList<String> list = new ArrayList<String>();
list.clone();
但如果 type 是 List,我不能。
我应该只使用下面的复制构造函数来制作本地副本吗?制作“列表”副本的最佳方法是什么?
List<String> tmpList = new ArrayList<String>(list);
【问题讨论】: