通过 FindBugs 运行代码以获取我收到的臭味

错误:类 com.MyClass 定义了非 transient 、不可序列化的实例字段 someSet
模式 ID:SE_BAD_FIELD,类型:Se,类别:BAD_PRACTICE

我知道 set 没有实现序列化,但 HashSet 实现了,这就是为什么它在当时和那里被初始化。我认为这是一个很好的做法:(但显然不是

public class Myclass extends
{
   @Transient
   private Set<String> someSet = new HashSet<String>();

        ...........
}

任何帮助都会很棒。低级别警告,但很想知道为什么?

最佳答案

不幸的是,FindBugs 不够聪明,无法识别定义为 Set 的字段实际上是一个 HashSet。这是 findbugs 的一个缺点。你应该在这里添加一个问题 http://sourceforge.net/tracker/?group_id=96405&atid=614693

关于serialization - Findbugs 非 transient 不可序列化实例字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6148238/

10-13 07:02