繁体   English   中英

Java:包含原始对象引用的对象内部的对象引用

[英]Java: Object reference inside Object that contains original Object reference

因此,我花了很长时间寻找有关此操作的文档,但失败了。 问题更多是“它是如何工作的”,而不是对代码片段的解释。

麻烦:

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内的ArrayList中使用y了吗?

试图通过测试弄清事情是不可能的,因为每当我尝试时,我似乎都没有必要的脑力以免感到困惑(原因就是为什么我希望这里比我更聪明的人可以提供帮助)。

ArrayList<yObject>不包含yObject:它包含对yObject的引用 实际包含您的任何对象的唯一东西是堆。

这与将朋友的姓名放入手机的“联系人”列表中一样,她可以将您的姓名放入手机的联系人列表中也没有什么不同。 没有矛盾之处,因为您的联系人列表中没有一个包含实际人员:该列表仅包含有关如何获得人员的信息。 同样,Java变量和Java容器实际上并不包含对象:它们仅包含查找这些对象并与之交互所需的信息。

是的,您可以在x内使用y,因为它是对对象的引用。 因此,如果您在x中更新y,则x之外的y也将被更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM