Ich habe mit der Initialisierung von verschiedenen Arten von Variablen in Java experimentiert. Ich kann die letzte Variable (z. B. final int b) und die statische Variable (z. B. static int c) im Konstruktor initialisieren, aber ich kann statische statische Variable (z. B. static final int d) im Konstruktor nicht initialisieren. Die IDE zeigt auch eine Fehlermeldung an.Warum Java die Initialisierung statischer endgültiger Variablen (z. B. statischer final int d) im Konstruktor nicht zulassen würde?
Warum kann Java die Initialisierung der statischen Variablen im Konstruktor nicht zulassen?
public class InitialisingFields {
int a;
final int b;
static int c;
static final int d;
InitialisingFields(){
a = 1;
b = 2;
c = 3;
d = 4;
}
public static void main(String[] args) {
InitialisingFields i = new InitialisingFields();
}
}
Fehlermeldung:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - cannot assign a value to final variable d
at JTO.InitialisingFields.<init>(InitialisingFields.java:22)
at JTO.InitialisingFields.main(InitialisingFields.java:26)
Java Result: 1
vielen Dank! jetzt macht alles Sinn! – Thor