因此,我挣扎了很长一段时间才找到有关这方面的文档,但失败了。问题更多的是“它是如何工作的”,而不是对代码片段的解释。
麻烦是:
xObject x = new xObject();
yObject y = new yObject( x );
x.add( y );其中,xObject有:
private ArrayList<yObject> yObjects;
public void add( yObject _y ) {
this.yObjects.add( _y );
}yObject有:
private xObject x;
public yObject( xObject _x ) {
this.x = _x;
} 现在,是否可以在x内的y中使用ArrayList s呢?
尝试通过测试来解决问题是不可能的,因为每当我尝试时,我似乎没有必要的脑力来避免困惑(为什么我希望比我在这里的人更聪明的人可能能够帮助我)。
发布于 2017-01-27 19:20:03
ArrayList<yObject>不包含yObjects:它包含对yObjects的引用。真正包含任何对象的唯一东西是堆。
这和你如何把你朋友的名字放在你手机的“联系人”列表中没有什么不同,她也可以把你的名字放在她手机的联系人列表中。这是没有矛盾的,因为你的联系人列表中没有一个包含实际的人:列表中只包含关于如何与人联系的信息。类似地,Java变量和Java容器实际上并不包含对象:它们只包含查找这些对象并与它们交互所需的信息。
发布于 2017-01-27 18:22:01
是的,你可以在x里面玩y,因为它是对对象的引用。因此,如果在x中更新y,x外部的y也将被更新。
https://stackoverflow.com/questions/41900540
复制相似问题