FindBugs和静态初始化顺序

时间:2013-11-20 08:28:55

标签: java static initialization static-analysis findbugs

我有以下Java代码:

public class Something {

    static {
        new Something();
    } 

    public static final int[] EMPTY_INT_ARRAY = new int[0];
}

我正在使用FindBugs查找代码错误,但从未引发以下错误:

  

SI:静态初始化程序在所有静态最终字段之前创建实例   已分配(SI_INSTANCE_BEFORE_FINALS_ASSIGNED)

     

该类的静态初始化程序之前创建该类的实例   所有静态最终字段都已分配。

这是否应该证明这个问题?为什么不提起这个代码问题呢?

1 个答案:

答案 0 :(得分:4)

没试过,但我想一个例子是:

public class Something {

    static {
        new Something();
    }

    public static final int CONST = 42;
}

当麦角酸已经发现时,这个错误在FindBugs中的严重程度较低(16)。您必须手动降低最小阈值才能显示。