gpt4 book ai didi

java - Java 中的克隆列表

转载 作者:行者123 更新时间:2023-12-01 06:36:28 24 4
gpt4 key购买 nike

Possible Duplicate:
How to clone ArrayList and also clone its contents?

我有一个ArrayList<Widget>我想“深度”克隆,以便对原始列表中的任何项目进行修改不会对克隆列表中的项目产生任何影响:

ArrayList<Widget> origList = getMyList();
ArrayList<Widget> cloneList = origList.clone();

// Remove the 5th Widget from the origina list
origList.remove(4);

// However, the cloneList still has the 5th Widget and is unchanged

// Change the id of the first widget
origList.get(0).setId(20);

// However in cloneList, the 1st Widget's ID is not 20

实现这一目标的最佳/最安全的方法是什么?我想这并不那么简单:

ArrayList<Widget> cloneList = origList.clone();

我想象这是一个内置的ArrayList类型,加上它的泛型这一事实,将使事情变得复杂。我还想我需要写一个特殊的 clone()覆盖我的Widget类?

提前致谢!

编辑:
如果有一个公共(public) JAR 可以为我完成这项繁重的工作,我也会完全接受,所以请随意提出建议,但是我仍然想知道如何以 ole' 时尚的方式做到这一点,这样我就可以学习;-)

最佳答案

这是一项不平凡的任务,我建议您使用可用的库之一,例如 http://code.google.com/p/cloning/

另请参阅:Java: recommended solution for deep cloning/copying an instance

如果您想了解它是如何完成的,请获取开源库并查看源代码:)

关于java - Java 中的克隆列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8915264/

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