2

最近我遇到了很多错误,因为SimpleDateFormat不是线程安全的。

我发现的原因是它没有正确同步,或者没有为单独的线程创建新实例。

所以我想让我们创建一个 PMD/Checkstyle 以便将来如果有人使用SimpleDateFormat他会得到一些关于它不是线程安全的警告。

我是 Checkstyle 的新手,谁能描述我如何做到这一点?

4

1 回答 1

3

当 DateFormat 被定义为静态字段时,FindBugs 可以输出警告。但是检测 DateFormat 的非线程安全使用非常困难,因为它需要了解对象的使用方式。我认为为此编写 CheckStyle 规则是不可能的。至少在没有检测到大量误报的情况下并非如此。

也许您应该禁止直接使用 DateFormat,并将其包装到自定义类中,或者强制使用线程安全的 Apache commons FastDateFormat。

于 2012-01-17T09:30:28.023 回答