【发布时间】:2012-10-29 19:03:26
【问题描述】:
如果我这样做[准java代码]:
while (loop)
{
localObject = getDataForObject();
globalPublicStaticArrayList<Object>.add(localObject);
}
globalPublicStaticArrayList 中的所有元素都是相同的,等于添加的最后一个 localObject 副本。我通过调试器中的循环,看到一旦添加了一个对象,它就会被复制到 globalPublicStaticArrayList 的所有元素中。
我找到的解决方法是:
while (loop)
{
localObject = getDataForObject();
globalPublicStaticArrayList<Object>.add(new Object(localObject.member1, localObject.member2,...));
}
这与 Java 中的传递引用有关吗?为什么在第一种情况下元素是相同的?谢谢。
【问题讨论】:
-
显示
getDataForObject()的代码。或者您的完整活动代码 -
这个问题是在另一个问题之前提出的。这是一个副本而不是那个副本?