我们已将 Findbugs 配置为通过 Maven 在我们的 Jenkins 上运行。
除其他外,它在以下代码行中抱怨 SE_BAD_FIELD:
private boolean logged = false;
这个错误的描述说
Se:可序列化类中的非瞬态不可序列化实例字段(SE_BAD_FIELD)
这个 Serializable 类定义了一个非原始实例字段,它既不是瞬态的、Serializable 也不是 java.lang.Object,并且似乎没有实现 Externalizable 接口或 readObject() 和 writeObject() 方法。如果此字段中存储了不可序列化的对象,则此类的对象将无法正确反序列化。
但是boolean
是原始人!?那它为什么抱怨呢?或者这是某种 Findbugs、Maven 或 Jenkins Bug?