我有一个对象的ArrayList。
我用类似的方法“检索”这些对象之一:
MyObjectClass myObject = myArrayList.get(34);
如果随后对myObject进行了修改,例如:
myObject.someMember = 97;
它只是对对象的本地COPY还是数组列表中的实际对象进行处理?也就是说,myObject变量是副本还是数组列表中对象的引用?
最佳答案
在Java中,引用对象的名称始终具有引用语义。容器get
函数惯用地返回与容器相同的引用。
如果函数想要返回本地副本,或者您想要本地副本,则可以使用new
完成。
MyObjectClass myObject = new MyObjectClass( myArrayList.get(34) );