首页 > 解决方案 > 将引用表单类 A 传递给类 B 并将引用表单类 B 传递给类 A Java

问题描述

到目前为止,我已经看到了一个类似的问题:将类的引用传递给另一个类,后者只是要求将 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 类中创建后是否有另一种访问引用的方法?

new ClassB的参考?

一个代码示例将是惊人的,因为现在我不理解迄今为止通过创建多个构造函数所听到的“解决方案”......我什至不确定它们是否有效。

编辑:这就是我的结构

在此处输入图像描述

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

标签: javareferencenull

解决方案


这听起来像是您想要避免的设计。但是,如果您必须这样做,我建议创建一个包含对两个对象的引用并将其传递给 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

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


推荐阅读