Könnte jemand erklären, was mit diesem Code falsch ist:Illegal Vorwärts-Referenz java Ausgabe
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);
}
}
Wenn ich LINE Kommentar 1 - alles ist in Ordnung und Base.main Methode druckt „1“. Wenn LINE 1 - nicht kommentiert ist, hat die Kompilierzeit Fehler: "illegale Forward-Referenz". Also, wie ich im statischen init Block verstehe, kann ich Wert für i setzen, aber nicht lesen. Könnte jemand erklären warum?
Ich glaube nicht, dass das Verhalten, wie in der Frage beschrieben, ein Fehler ist. – assylias