【发布时间】:2012-11-10 08:18:47
【问题描述】:
首先让我说我不能在这里放任何代码,因为我的笔记本电脑上的互联网无法正常工作,所以我通过手机发布了这个。好的,问题是说我有两个班:一班和二班。第一类有一个ArrayList 作为其属性之一,它从第二类调用一个void 方法并将ArrayList 作为参数传递。现在该方法初始化另一个ArrayList 并使其等于我传递的参数并对新的ArrayList 进行更改。有趣的是,即使是我原来作为参数传递的 ArrayList 也在发生变化。可能的原因是什么?
【问题讨论】:
-
我猜是因为你在堆中有 2 个对同一个对象的引用。因此,对第一个引用的任何修改都会反映到另一个引用。有关详细信息,请参阅stackoverflow.com/a/9404727/597657。
-
列表是否发生了变化(删除/添加/重新排序的元素),还是列表中的元素(它们的属性)?