public class Test {
private static final int A;
static {
A = 5;
}
}
这种初始化静态 final 变量 A 的方式可以正常工作。
public class Test {
private static final int A;
static {
Test.A = 5;
}
}
这种方式会出现编译错误:"无法为最终变量 'A' 分配值"。
为什么会出现这种情况呢?
Test
实例。 - Jon Skeetstatic
块以及何时可以使用Test.A
有关。尽管如此,这是一个有趣的发现,我也很好奇能否得到详细的答案。 - Zabuzard