3
爲什麼不能有多個出口從靜態初始化? Java語言規範是如此陳述的嗎?Java - 我們可以從初始化程序中返回嗎?
當試圖編譯代碼:
class HelloWorldApp {
static {
if(1 > 2)
return;
System.out.println("static");
}
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
編譯器打印出一個錯誤:return outside method
爪哇拆卸與javap
表明static
是空隙的方法,所以這將是可能的,從理論上說,對創建一個有多個「返回」的字節碼?
JLS規定了'static'初始化中的'return'語句[這裏]非法(http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html# JLS-8.7)。 – 2014-09-24 16:14:42
這看起來像一個JVM問題,而不是JLS問題。這些規格確實有所不同,這可能就是其中之一。 – 2014-09-24 16:15:17
看到:http://stackoverflow.com/questions/11118226/how-to-return-from-a-static-initialization-block-in-java – 2014-09-24 16:17:36