小编典典

Java:将相同的对象传递给彼此的构造函数

java

大家晚上好。

当尝试将一个对象传递给另一个对象构造函数时,我似乎遇到了一个奇怪的问题,该对象的构造函数也依赖于要传递给它的对象。

例如,使用以下示例:

ToolBar myToolBar = new ToolBar(webPanel);
WebPanel webPanel = new WebPanel(myToolBar);

但是,在构造ToolBar时,它将返回NullPointerException。当然,这是因为尚未构建webPanel并且需要它。

减速和初始化都必须保留在同一类(称为BuildUI)中,因为这是我设置属性的地方。(对于ToolBar创建webPanel对象也没有意义,反之亦然)。

我也不确定这是否是好的编程习惯,因为两个对象都需要相互引用。

非常感谢您在这里提出的任何建议。谢谢,汤姆。


阅读 281

收藏
2020-11-26

共1个答案

小编典典

如您所见,这将导致问题。代替此方法,可以使用setter-getter方法,在其中使用默认构造函数(例如

ToolBar myToolBar = new ToolBar();
WebPanel webPanel = new WebPanel();

然后使用setter方法设置所需的实例变量,这些变量是完全构造对象所必需的。

myToolBar.setWebPanel(webPanel);
webPanel.setToolBar(myToolBar);
2020-11-26