我有以下Java代码:
public class Something {
static {
new Something();
}
public static final int[] EMPTY_INT_ARRAY = new int[0];
}
我正在使用FindBugs查找代码错误,但从未引发以下错误:
SI:静态初始化程序在所有静态最终字段之前创建实例 已分配(SI_INSTANCE_BEFORE_FINALS_ASSIGNED)
该类的静态初始化程序之前创建该类的实例 所有静态最终字段都已分配。
这是否应该证明这个问题?为什么不提起这个代码问题呢?
答案 0 :(得分:4)
没试过,但我想一个例子是:
public class Something {
static {
new Something();
}
public static final int CONST = 42;
}
当麦角酸已经发现时,这个错误在FindBugs中的严重程度较低(16)。您必须手动降低最小阈值才能显示。