[英]How to bind references of two objects?
如果我有2个物件
Foo foo;
Foo bar = foo;
它们最初都指向null。
如果foo get已初始化
foo = new Foo();
bar引用null,但我希望将其绑定到foo。
因此,foo引用的每次更改都会使bar引用保持相同。
有没有一种方法可以让bar自动指向与foo相同的地址,
即使更改,还是必须手动调用?
foo = new Foo();
bar = foo;
foo
和bar
都不是真正的对象,而是对对象的引用。
在初始声明中,将两者都设置为undefined,或更准确地说, foo
是undefined ,并且将bar
设置为相同的值。 但是,即使您已初始化foo
,答案也将是相同的。
当将foo
的值设置为新对象( new Foo
)时, bar
仍未定义。
所以答案是,是的,您必须手动进行。
您可以通过创建类似指针类的方法来使用变通方法。
class Pointer <T> {
T target = null;
Pointer(T target){
this.target = target;
}
static Pointer nullPointer(){
return new Pointer(null);
}
public void setTarget(T target){
this.target = target;
}
public T getTarget(){
return target;
}
}
您可以像这样使用它:
Pointer<Foo> foo = Pointer.nullPointer(); //target=null
Pointer<Foo> bar = foo; //bar now also "points" to null
foo.setTarget(new Foo()); //now BOTH have the new object as the target
Java是按值传递,而不是按引用传递。 bar的引用不应与foo的引用相同
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.