【发布时间】:2013-03-15 19:39:33
【问题描述】:
我的代码中有一个字符串列表。我将该字符串列表传递给一个函数并对其进行修改。(我正在从列表中添加/删除几个元素)。但我不希望这些更改反映在调用者函数中。更改应仅反映在被调用函数中。但是由于对象是通过引用传递的,我认为这些变化都反映在这两个函数中。我怎样才能避免这种情况。请帮忙
【问题讨论】:
-
ArrayList newArrayList = (ArrayList) oldArrayList.clone();
-
添加了额外的位:如果列表中的对象不是不可变的,请注意列表中的对象也可以在被调用函数中更改。列表克隆将创建浅拷贝而不是深拷贝。因此,如果您想保护列表中的对象 1) 进行深度克隆 2) 使对象不可变。
标签: java function object arraylist