将参考表单类A传递给B类,并将参考表单类B传递给A类Java

时间:2019-03-20 10:34:49

标签: java reference null access

到目前为止,我已经看到一个类似的问题:passing reference of class to another class,他只是要求将引用从A类传递到B类。

到目前为止,我只在构造函数上做到了。

只要我仅以这种简单方式进行操作,此方法就可以工作。

...

    this.classA = new ClassA(classB); //getting the null reference

    this.classB = new ClassB(classA); //getting the reference from new ClassA

...

classB将包含null,因为它是在classA之后创建的,表示null引用已经存在。

在类A中创建后,是否还有另一种访问引用的方法?

新ClassB 的引用吗?

一个代码示例将是惊人的,因为到目前为止,我不了解我到目前为止通过创建多个构造函数而听到的“解决方案”……我什至不确定它们是否可以工作。

编辑:这就是我的结构

enter image description here

DestinationContentPanel-> DestinationMainPanel-> DestinationHealthMainPanel-> MainPanel <-BottomBarMainPanel <-LeftPanel

1 个答案:

答案 0 :(得分:0)

这听起来像是您要避免的设计。但是,如果必须这样做,我建议创建一个类,该类包含对两个对象的引用,并将其传递给classA和classB:

class RefHolder {
  ClassA a;
  ClassB b;
}

然后使用它:

RefHolder r = new RefHolder();
r.a = new ClassA(r);
r.b = new ClassB(r);
//at this point, both classes can use the RefHolder that was passed
//to the constructors to access instances of ClassA and ClassB

但这只是一种解决方法,我建议不要使用这种循环依赖类型。