是否可以使用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