哪种情况允许在静态初始化程序块中进行前向引用?

时间:2017-03-06 13:01:58

标签: java class static initialization declaration

在Java中,静态变量的初始化以文本顺序执行。结果,不可能访问静态变量,例如在它被删除之前的静态初始化程序块中。

但是,我注意到在声明静态变量之前有一定的可能性。

给出以下代码:

static {
    STATIC = true;
}
public static boolean STATIC = false;

public static void main (String[] args) {
    System.out.println(STATIC);
}

可以预期静态初始化程序块(STATIC = true;)中存在编译错误,但它实际上编译正常。此外,该程序的输出为false。我希望它是true,因为我在静态初始值设定项中为它赋值。

  • 为什么此代码段不是编译错误,为什么变量在初始化后未设置为true
  • 在哪些情况下(一般情况下)是否可以在Java中转发访问静态变量?

0 个答案:

没有答案