Findbugs非瞬态非可序列化实例字段

时间:2011-05-27 05:36:48

标签: serialization findbugs

在通过FindBugs运行代码来获取有臭味的位时,我得到了 错误:类com.MyClass定义非瞬态非可序列化实例字段someSet 模式ID:SE_BAD_FIELD,类型:Se,类别:BAD_PRACTICE
我知道set没有实现序列化,但是HashSet会这样做,这就是为什么它在那时被初始化。我认为这是一个很好的做法:(但显然不是

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

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

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

1 个答案:

答案 0 :(得分:4)

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