我正在使用上述两项检查。有没有办法让它变成空白后用逗号强制空间,除非是在泛型中?即我希望这是有效的。
public void function(String a, String b) {
Map<String,String> data = Hashtable<String,String>();
// etc...
}
即函数声明中逗号之后的空格是明智的,但将其置于泛型内部似乎很奇怪。特别是在这个例子的情况下,添加空格似乎使这更难阅读:
public void fn(Connection c, Map<String,Object>>items) {
}
答案 0 :(得分:1)
不幸的是,用checkstyle似乎无法实现你的目标。 WhitespaceAfter
规则没有任何选项可以在类型参数中排除逗号。也许您可以通过扩展或重写WhitespaceAfter
规则来编写自己的规则,参考http://checkstyle.sourceforge.net/writingchecks.html
答案 1 :(得分:0)
使用Checkstyle开箱即可轻松完成,所以让我建议一个替代方案(实际上我在商业项目中做的事情):
禁用与代码格式相关的所有Checkstyle规则,并使用IDE的自动代码格式化程序。每当您保存编辑器内容时,许多IDE(例如Eclipse)都可以格式化您的代码 然后,您可以配置自动格式化程序来处理您的案例。我刚检查了Eclipse Juno代码格式化选项;它可以做你想要的 - 在泛型声明中逗号之后没有空格,但在其他地方用逗号后空格。
这种方法增加了好处:
我知道这种方法在您的情况下可能无法实现,但我知道这种方法非常有效,并且它确实解决了您的问题,而无需编写自定义检查。