1

我们已将 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?

4

1 回答 1

1

我注意到 FindBugs 有时会报告 SE_BAD_FIELD 的错误行号。因此,您可能想要检查其他字段的可序列化性。(我使用 FB 1.3.9。)。

于 2012-10-19T12:27:17.393 回答