Java 方法/构造函数声明的开始括号后和结束括号前的空格
我想配置一个简单的checkstyle规则。它应该确保在方法/构造函数声明的开始圆括号之后和结束圆括号之前有空格 示例: 有效:Java 方法/构造函数声明的开始括号后和结束括号前的空格,java,checkstyle,Java,Checkstyle,我想配置一个简单的checkstyle规则。它应该确保在方法/构造函数声明的开始圆括号之后和结束圆括号之前有空格 示例: 有效:公共无效有效方法声明(布尔foo){} 无效:公共无效invalidMethodDeclaration(布尔foo){} 正常的方法调用应如下所示: methodCall(true) 不幸的是,ParenPad和MethodParamPad模块无法捕获这种情况ParenPad不允许将METHOD_DEF或CTOR_DEF作为令牌,而MethodParamPad只能确保左
公共无效有效方法声明(布尔foo){}
无效:公共无效invalidMethodDeclaration(布尔foo){}
正常的方法调用应如下所示:
methodCall(true)代码>
不幸的是,ParenPad
和MethodParamPad
模块无法捕获这种情况ParenPad
不允许将METHOD_DEF
或CTOR_DEF
作为令牌,而MethodParamPad
只能确保左圆括号前的空间。ParenPad
将为您执行此检查。如果您对方法/构造函数声明的开始括号之后和结束括号之前的空格感兴趣,但不希望它们出现在方法调用、构造函数调用和super调用周围,那么您可以使用不同的标记集运行ParenPad
两次:
<module name="ParenPad">
<property name="option" value="space"/>
<property name="tokens" value="LPAREN,RPAREN"/>
</module>
<module name="ParenPad">
<property name="option" value="nospace"/>
<property name="tokens" value="CTOR_CALL,METHOD_CALL,SUPER_CTOR_CALL"/>
</module>
METHOD_DEF
和CTOR_DEF
是树结构中包含多个其他令牌的令牌,包括普通的LPAREN
和rpare
问题是,我们不希望在方法/构造函数调用中有空格,只是在他们的定义中。到达那里-但是现在有一个错误的警告:formethodCall(true)
I receive“)”前面没有空格
。今天晚些时候我会研究它。如果有必要,我可以对Checkstyle进行更改-当Checkstyle 6.7发布时,您能使用它吗?或者您被绑定到旧版本?您是对的,对于我的解决方案,方法调用中的“')”上存在不必要的警告。有趣的是,cast操作符中的“')”没有警告。代码中的快速检查:-看起来有人从这个检查中排除了cast操作符的右paren,但是忘记了对方法调用执行同样的操作。我将建议更新Checkstyle,并将通知您进度。我已经更正了本地工作的代码。对。。。因此,我们可能需要Checkstyle中的新check/选项。我们不能仅仅依赖令牌。假设您希望有效调用看起来像validMethodDeclaration(true)代码>(没有空格),那么这是不可能的。RPAREN
标记显示为定义和调用的右括号。您必须编写一个自定义检查(可能作为ParenPad的子类),它允许对某些父令牌(例如METHOD\u DEF
)进行例外。噢,我希望这不是必需的,但唉。完成后,将在此处发布自定义检查的代码。