大家晚上好。
当试图将一个对象传递给另一个对象构造函数时,我似乎遇到了一个奇怪的问题,该对象的构造函数也依赖于要传递给它的对象。
例如,使用以下示例:
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);