我很抱歉这个糟糕的头衔,但我不确定我的问题是什么。 (如果可以的话,请在答案中告诉我)我有两个课程,我正在尝试与之互动。课程'设置'我在课堂上需要变量'开始'反之亦然。我试过扩展课程设置'在'开始'通过这样做:
public class Begin extends Setup {
需要注意的是,我确实参考了“开始”。 '设置'中的课程以这种方式上课:
Begin b = new Begin();
我也试过引用“设置”和“设置”。并且'开始'每个班级的班级。这没有用。我得到了' java.lang.StackOverflowError'两个班级都有错误。我得到了错误,我引用了另一个类。 (错误在'开始':'设置s =新设置();'错误'设置':'开始b =新开始() ;&#39)
我不知道为什么我会收到此错误,而且我不知道引用了什么'正确地调用了一个类。如果这是重复,我道歉。如果是,请将我链接到该页面。如果没有,请让我知道我可以做些什么来让我的程序再次正常工作。我在本主题中提到的代码和类只是示例。它们不是我正在使用的课程。我认为注意到我正在使用JFrame可能会有所帮助。我只将一个类扩展到JFrame,但这两个类都在使用JFrame。我在类中创建了一个不扩展JFrame的新JFrame。如果您无法给出答案,您认为会有所帮助,我会将代码发布到我的两个课程中。 提前致谢! 〜录音棚
编辑:谢谢你们!我很高兴你能用我给出的例子帮助我。再次感谢!答案 0 :(得分:4)
你有无限的递归。
课程'设置'我在课堂上需要变量'开始'反之亦然。
不是通过继承而是通过组合来解决的。例如......
public class Begin {
private Setup setup;
public void setSetup(Setup setup) {
this.setup = setup;
}
和也许也是
public class Setup {
private Begin begin;
public void setBegin(Begin begin) {
this.begin = begin;
}
然后在其他地方:
Begin begin = new Begin();
Setup setup = new Setup();
begin.setSetup(setup);
setup.setBegin(begin);
还有其他注入依赖关系的方法,细节将取决于你的需要,所以不要把它作为福音,除了不为此目的使用继承。