誰能解釋一下什麼是錯這個代碼:非法向前參考java的問題
public class Base {
static {
i = 1;
System.out.println("[Base]after static init block i=" + i);// LINE 1
System.out.println("*************************************");
System.out.println();
}
static int i;
public static void main(String[] args) {
System.out.println(Base.i);
}
}
如果我註釋行1 - 一切正常,並Base.main方法打印「1」。 如果LINE 1 - 未被註釋,則編譯時錯誤:「非法正向引用」。 因此,正如我所瞭解的靜態初始化塊,我可以爲我設置值,但不能讀取。誰能解釋爲什麼?
我不認爲問題中描述的行爲是一個錯誤。 – assylias