我不确定我的程序有什么问题。基本上我只想做一个班级的对象。然后该对象应在其构造函数中创建另一个对象。但是当我从第一个对象的构造函数内部创建对象时,我收到错误:
“线程中的异常”主“java.lang.StackOverflowError at 安装程序。(Setup.java:31)at GameController。(GameController.java:30)“
错误的这一部分会一直重复,直到我的运行时“错误”框已满:
“在安装程序。(Setup.java:31)
在GameController。(GameController.java:30)“
这是我的代码:(在main中创建的对象)
public class GameController {
GameController() {
Setup Set = new Setup(); //Refers to error happening here.
(设置对象类)
public class Setup extends GameController {
Setup() { //Refers to error happening here.
我不介意以不同的方式处理我的代码,但我想知道我做错了什么,所以我可以在将来做到。
答案 0 :(得分:6)
没有安装程序扩展GameController!这就是造成不必要的递归的原因,可能没有必要。
当你创建一个Setup对象时,它会调用GameController的构造函数,它会创建一个Setup对象,然后调用GameController的构造函数,然后创建一个Setup对象,然后调用GameController的构造函数,然后创建一个Setup对象,然后调用GameController的构造函数,然后调用GameController的构造函数的Setup对象,该构造函数创建一个Setup对象,然后调用GameController的构造函数,然后创建一个Setup对象,然后调用....
ad无限。
我怀疑你在这里使用继承是出于不恰当的原因,所以再一次,只是没有安装扩展GameController,这个问题应该修复。
关于,
哦,它不会编译。
不可能。如果它没有编译并运行,则无法看到此异常。