我有一个对象的ArrayList。
我用类似的方法“检索”这些对象之一:

MyObjectClass myObject = myArrayList.get(34);


如果随后对myObject进行了修改,例如:

myObject.someMember = 97;


它只是对对象的本地COPY还是数组列表中的实际对象进行处理?也就是说,myObject变量是副本还是数组列表中对象的引用?

最佳答案

在Java中,引用对象的名称始终具有引用语义。容器get函数惯用地返回与容器相同的引用。

如果函数想要返回本地副本,或者您想要本地副本,则可以使用new完成。

MyObjectClass myObject = new MyObjectClass( myArrayList.get(34) );

09-10 07:02
查看更多