大家晚上好。

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

例如,使用以下示例:

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


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

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

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

在这里的任何建议,我们将不胜感激。谢谢,汤姆。

最佳答案

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

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


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

myToolBar.setWebPanel(webPanel);
webPanel.setToolBar(myToolBar);

10-08 03:18