2012-01-17 52 views
2

最近我遇到了很多錯誤,因爲SimpleDateFormat不是線程安全的。SimpleDateFormat的Checkstyle/PMD規則不是線程安全警告

我發現的原因是它沒有正確同步,或者沒有爲單獨的線程創建新的實例。

所以我想我們來創建一個PMD/Checkstyle,以便將來如果有人使用SimpleDateFormat,他會得到一些關於它不是線程安全的警告。

我是Checkstyle的新手,任何人都可以描述我如何實現這一目標?

+0

Checkstyle!= PMD。他們是不同的項目。 – palacsint 2012-01-17 12:22:20

回答

3

當DateFormat被定義爲靜態字段時,FindBugs可以輸出警告。但是,檢測DateFormat的非線程安全使用非常困難,因爲它需要了解如何使用對象。我不認爲爲此寫一個CheckStyle規則是可能的。至少不是沒有檢測到大量的誤報。

也許您應該禁止直接使用DateFormat,並將其包裝到自定義類中,或者強制使用Apache commons FastDateFormat,這是線程安全的。