gpt4 book ai didi

Java跟踪困惑

转载 作者:行者123 更新时间:2023-11-29 07:36:26 25 4
gpt4 key购买 nike

谁能帮我理解为什么 java 试图在 b 之前创建 a 的实例。还有,为什么它在第 2 行和第 3 行之间循环?

public class Winterfell {

private Winterfell a= new Winterfell();

public Winterfell() throws Exception {
throw new Exception("Fire and Ice");
}

public static void main(String[] args) {
try {
Winterfell b = new Winterfell();
System.out.println("Surprise!");
} catch (Exception ex) {
System.out.println("I told you so");
}
}
}

最佳答案

这将导致 StackOverflowError

通过引用同一类的新对象的字段或在构造函数中创建同一类的新对象,您可以无限次调用来创建新的 Winterfell 对象。

这就是它循环的原因。

要解决此问题,您可能需要删除 private Winterfell a= new Winterfell(); 以便创建单个 Winterfell 对象。

关于Java跟踪困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229260/

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