在代码中
public class Test {
public static final int var1;
public static int var2;
static {
Test.var2 = 3;
Test.var1 = Test.var2;
}
}
javac 说
Test.java:8: error: cannot assign a value to final variable var1
但是如果我删除“测试”。从作业中的“Test.var1”开始,它可以毫无怨言地编译。为什么 javac 会这样?