Abh*_*kar 0 java project-management object
给定两个类,相互创建每个类的对象会导致StackOverflow异常.这是一个JAVA项目顺便说一句.
我的项目中有多个类,并且对于使用其他类,我想我会创建另一个类的对象并使用它.
假设我有类Main和类GUI.我在MAIN中创建了GUI对象并对其进行了初始化.同样,我在GUI中创建了一个MAIN对象并对其进行了初始化.
现在这给了我一个Stack Overflow Exception,因为构造函数调用正在进行递归.
我该怎么做呢?
我能想到的一个可能的解决方案是创建一个类STATIC的变量和方法.
还有其他方法吗?请建议.
您应该将其中一个类的实例传递给另一个类的构造函数.
public class Main {
private final GUI gui;
Main() {
gui = new GUI(this);
}
}
public class GUI {
private final Main main;
public GUI(Main main) {
this.main = main;
}
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用setter而不是构造函数.我不喜欢这个选项,因为你失去了使你的变量最终的能力.
public class Main {
private GUI gui;
Main() {
}
public void setGui(GUI gui) {
this.gui = gui;
}
}
public class GUI {
private Main main;
public GUI() {
}
public void setMain(Main main) {
this.main = main;
}
}
public static void main(String[] args) {
Main main = new Main();
GUI gui = new GUI();
main.setGui(gui);
gui.setMain(main);
}
Run Code Online (Sandbox Code Playgroud)