为什么本地simpleDateFormat会导致bug

时间:2011-09-10 20:00:48

标签: java findbugs simpledateformat

我刚开始使用findbugs。 我有一个我一般使用的静态simpleDateFormat,并且findbugs将其标记为bug。好的,我同意,看一下simpleDateFormat的参考资料。但是,我继续在以下行中获取静态java.text.DateFormat错误

1)final SimpleDateFormat df = new SimpleDateFormat(“MMM dd yyyy”); 2)final DateFormat df = new SimpleDateFormat(“MMM dd yyyy”);

我正在使用eclipse,在我看来,即使代码已被修改,最初被标记的错误仍然会出现。

我还有另一个“修复错误”仍然显示为错误。我实现了equals而没有覆盖hashCode。现在,我已经添加了hashCode方法,但是继续收到一个错误,该错误说明当覆盖equals时,还必须覆盖hashCode。

此外,一些最初的错误现在显示在评论行上,再次暗示正在报告原始错误/位置。

如何清除Eclipse中的“错误”?

2 个答案:

答案 0 :(得分:1)

FindBugs可以从已编译的类文件中运行。清理,然后构建项目并再次运行FindBugs。

答案 1 :(得分:0)

  

1)final SimpleDateFormat df = new SimpleDateFormat(“MMM dd yyyy”);   2)final DateFormat df = new SimpleDateFormat(“MMM dd yyyy”);

昨晚我遇到了同样的问题。如果您在多线程中使用其中任何一个,它将崩溃。 SimpleDateFormat不是线程安全的。因此,每次使用它们或进行同步时都要创建它们(这可能会降低多线程代码的速度。)

如果你进入FindBugs透视模式,你可以看到有关为什么是某个bug的详细信息,有时还会提供有用的链接或解决方法。

  

我正在使用eclipse,在我看来那些错误   即使代码已经存在,最初标记的仍然会显示出来   修改。

再次重新运行findbugs。你需要重新运行FindBugs。

  

如何清除Eclipse中的“错误”?

右键单击您的项目 - >查找错误 - >清除错误标记。