我了解到Java通过值传递对象引用,如果要创建一个对象的本地副本,可以使用clone()或复制构造函数。我还研究了深拷贝/浅拷贝以及Stack Overflow上的几篇文章。
我正在看这个例子:
List<String> list = new ArrayList<String>();
String one = "one"
list.add(one);
我读过的文章中只有少数提到ArrayList实现了cloneable,但并没有说明如何在类型为List而不是实现了cloneable的ArrayList的情况下制作“list”的本地副本。
如果“list”是ArrayList类型,我可以调用clone()方法。
ArrayList<String> list = new ArrayList<String>();
list.clone();
但如果类型是List,我就无法这样做。
我应该像下面这样使用复制构造函数来制作本地副本吗?制作“list”的副本的最佳方法是什么?
List<String> tmpList = new ArrayList<String>(list);