我研究过的Java是通过值传递对象引用,并且为了创建对象的本地副本,我可以执行clone()或copy-constructor。我也看过深/浅拷贝以及在stackoverflow上的几个帖子。如何制作List类型的ArrayList对象的副本?
现在我在看例子:
List<String> list = new ArrayList<String>();
String one = "one"
list.add(one);
几篇文章我只读提到的ArrayList实现可复制的,但并没有真正说如何让“名单”的本地副本,如果类型列表ArrayList不是哪不实现可复制。
我可以调用clone()如果 “目录” 是的ArrayList类型。
ArrayList<String> list = new ArrayList<String();
list.clone();
但是,如果类型是列表,我不能。
我应该使用像下面这样的拷贝构造函数来进行本地拷贝吗?制作“列表”副本的最佳方法是什么?
List<String> tmpList = new ArrayList<String>(list);
我不明白。与Cloneable相关的所有“问题”是什么,以及它们为什么如此糟糕,以至于您甚至不应该去调用它? – 2013-07-17 23:40:03
@RussellSilva,http://jtechies.blogspot.hu/2012/07/item-11-override-clone-judiciously.html – 2013-07-20 21:12:12