在Java中,静态变量的初始化以文本顺序执行。结果,不可能访问静态变量,例如在它被删除之前的静态初始化程序块中。
但是,我注意到在声明静态变量之前有一定的可能性。
给出以下代码:
static {
STATIC = true;
}
public static boolean STATIC = false;
public static void main (String[] args) {
System.out.println(STATIC);
}
可以预期静态初始化程序块(STATIC = true;
)中存在编译错误,但它实际上编译正常。此外,该程序的输出为false
。我希望它是true
,因为我在静态初始值设定项中为它赋值。
true
?