繁体   English   中英

Java - 创建对同一对象的两个引用

[英]Java - Creating Two References to the Same Object

检查以下代码:

Object object = new Object();
objectList.add(object);
objectListTwo.add(object);

有没有办法让两个数组都指向同一个对象,这样当我在一个数组中更改object时,它会在另一个数组中发生变化?

谢谢你的帮助!

编辑:转,我的上面的代码完全是这样。 问题在我的代码中的其他地方。 我为我的困惑道歉...

两个列表都指向同一个对象。 Java正在传递对象的引用(按值)。

取决于“改变”的意思。 如果你的意思是在调用setter并改变对象时进行更改,则会观察到这些更改。 如果您的意思是在完全重新分配或覆盖变量(或引用)时进行更改,则不会观察到这些更改。

更简单,说你有一个对象,一个数组。

Foo foo = new Foo();
Foo[] foos = new Foo[1];
foos[0] = foo;

数组中的项和变量各引用相同的Foo。

foo.setBar(7);
int bar = foos[0].getBar(); // will get 7

在数组内部观察到foo引用的对象的更改。

foo = new Foo();
foo.setBar(94);
bar = foos[0].getBar(); // will not get 94

由于foo已被重新分配,因此在数组内部未观察到此更改。 它的setter现在完全改变了另一个对象。

暂无
暂无

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

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