是否可以使用Checkstyle禁止使用某些構造函數或使用與系統相關的默認值(語言環境,字符集等)的方法。我更願意強制執行一項政策,程序員應明確系統相關值。所以,我認爲以下項目是危險的:Checkstyle規則阻止調用某些方法和構造函數
- 所有的使用依賴於系統的編碼
java.io.FielWriter
- 構造
- 的
java.io.OutputStreamWriter
- 的
OutputStreamWriter(OutputStream os)
構造使用依賴於系統的編碼
- 的
- 的
java.lang.String.toLowerCase()
方法- 使用系統默認語言環境
- 的使用
java.util.Calendar.getInstance()
方法- 系統默認的語言環境和默認時區
(這樣的例子不勝枚舉,你得到的圖片)。
是否可以使用Checkstyle 5.5強制執行此操作?
好問題。就我個人而言,我認爲這是編譯器本身應該默認警告的東西 - 如此多的可能的錯誤 - 使用這些方法幾乎是不對的。 – Voo
Oracle應該爲這些方法添加@SystemDependant批註。 – gawi
我寫了一個自定義檢查來避免新的Date(),如果您感興趣,請參閱以下內容:http://beansgocrazy.blogspot.com.au/2012/04/when-dates-go-wild.html – n0rm1e