2

我正在考虑这样做,但我不确定分配的参考温度在删除后是否仍然有效。

public Box removeBox(int index)
{
Box temp=getBoxes().get(index);//ArrayList.get
getBoxes().remove(index);
return temp;
}
4

5 回答 5

9

这很好,虽然return getBoxes().remove(index)会在一行中做同样的事情。

于 2012-04-24T16:07:58.300 回答
0

是的,这是一种有效的方法。Java 使用值,而不是引用。

于 2012-04-24T16:07:07.377 回答
0

是的,引用仍然有效,因为已经存在对它的引用(temp您刚刚定义的变量)。JVM 的垃圾收集器将在运行时处理所有取消引用的对象。有关更多信息,请参阅此链接:Java 中垃圾收集的工作原理,特别是当对象变得符合垃圾收集条件时

ArrayList#remove返回删除的元素,如果有的话,所以你也可以这样做return getBoxes().remove(index)

于 2012-04-24T16:09:06.010 回答
0

List.remove()不会使删除的对象无效。

从任何 Collection 中删除任何元素不会使其无效。

于 2012-04-24T16:09:14.437 回答
0

你会很棒,参考将是有效的

举个例子

A--------对象

B---------对象

A 和 B 都是 Object 的引用。

现在,假设参考 B 无效

A--------对象

B--|-|-|-|--|-|-对象(无效)

参考 A 仍然保持不变。

谢谢阿比

于 2012-04-24T16:28:01.423 回答