時收到錯誤我有下面的代碼:運行程序
ClassA.java
public class ClassA {
static boolean isDone = false;
public static void main(String[] args) {
System.out.println("In class A.");
if (!isDone) {
new ClassB();
isDone = true;
}
}
}
ClassB.java
public class ClassB {
ClassB() {
ClassA.main(null);
}
}
運行程序時,我獲得以下輸出:
In class A.
In class A.
Exception in thread "main" java.lang.StackOverflowError
at sun.nio.cs.SingleByte.withResult(Unknown Source)
at sun.nio.cs.SingleByte.access$000(Unknown Source)
at sun.nio.cs.SingleByte$Encoder.encodeArrayLoop(Unknown Source)
at sun.nio.cs.SingleByte$Encoder.encodeLoop(Unknown Source)
at java.nio.charset.CharsetEncoder.encode(Unknown Source)
at sun.nio.cs.StreamEncoder.implWrite(Unknown Source)
這是印刷「在A級」。如預期的那樣,但爲什麼我得到堆棧溢出錯誤?
邏輯錯誤。謝謝 :) –