以下代碼段中的代碼將引發java.lang.StackOverflowError
。由相同類型的非靜態成員導致的StackOverflowError
public class Main
{
private Main m=new Main(""); //This statement causes the exception.
private Main(String s)
{
System.out.println(s);
}
public static void main(String[] args)
{
try
{
Main m1=new Main("The constructor called.");
System.out.println("Successful!");
}
catch (Exception ex)
{
System.out.println(ex);
}
}
}
沒有意義刻意寫這篇聲明private Main m=new Main("");
類本身內部,但這種說法是不是永遠應該由類中的任何代碼中使用那麼說明如何能導致引發異常?
「*雞來首先在雞蛋前。*「 - 哈哈。 – Tiny