gpt4 book ai didi

java - 为什么我的下面的代码给出 java.lang.StackOverflowError 异常?

转载 作者:行者123 更新时间:2023-12-02 13:27:12 24 4
gpt4 key购买 nike

我不明白,为什么我的代码给出 java.lang.StackOverflowError 异常?有人可以简要说明一下为什么会出现 java.lang.StackOverflowError 异常吗?

public class BasicProg {

BasicProg b = new BasicProg();

int show() {

return (true ? null : 0);
}

public static void main(String[] args) {
BasicProg b = new BasicProg();
System.out.println(b.show());
}

}

最佳答案

您正在递归,因为 basicProg 类的构造函数被无限次调用。

public class basicProg {
// everytime a new basicProg object is created, another one will
// be created here, and so on...
basicProg b = new basicProg();

int show() {
return (true ? null : 0);
}

public static void main(String[] args) {
basicProg b = new basicProg();
System.out.println(b.show());
}
}

我不知道为什么你的 basicProg 类甚至有这个引用。如果您删除它并进行一些更改,您的代码应该按预期运行:

public class BasicProg {
public Integer show() {
return (true ? null : 0);
}

public static void main(String[] args) {
BasicProg b = new BasicProg();
Integer result = b.show();
System.out.println(result == null ? "null" : result.toString());
}
}

关于java - 为什么我的下面的代码给出 java.lang.StackOverflowError 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43343102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com