繁体   English   中英

如何绑定两个对象的引用?

[英]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;

foobar都不是真正的对象,而是对对象的引用。

在初始声明中,将两者都设置为undefined,或更准确地说, fooundefined ,并且将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.

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