<分区>
我正在尝试用 Java 初始化不同类型的变量。我可以在构造函数中初始化最终变量(例如 final int b)和静态变量(例如 static int c),但我不能在构造函数中初始化静态最终变量(例如 static final int d)。 IDE 还会显示错误消息。
为什么 Java 不允许在构造函数中初始化静态最终变量?
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();
}
}
错误信息:
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