我不时会在代码评论中看到这样的定义
public class EntityConverter {
private static final int FIRST_VERSION = 1;
@Autowired
private EntityRepository repository;
public void someMethod() {
...
}
...
}
和/或
public class EntityConverter {
private static final int FIRST_VERSION = 1;
@Autowired
private EntityRepository repository;
public void someMethod() {
...
}
...
}
如何强制人们在类部分之间添加1个空行(在常量,变量,方法等之间)?
答案 0 :(得分:1)
嗯,最好的选择是EmptyLineSeparator检查。根据其文档,它:
检查标题,包,所有导入声明,字段,构造函数,方法,嵌套类,静态初始值设定项和实例初始值设定项之后的空行分隔符。
像这样配置:
<module name="EmptyLineSeparator"/>
tokens
属性控制您想要空行的位置。 (至少你可以从一个地方列表中选择。)
至少需要Checkstyle 5.8,更好6.18或更高版本。
答案 1 :(得分:0)
我没有找到任何已实施的东西,所以我为此检查写了一个正则表达式。
使用多行正则表达式的快速解决方案(代码格式应正确):
<module name="RegexpMultiline">
<property name="format" value="^([^\n ]+ )*(class|interface|enum) [^{]*\{\n[^\n}]"/>
<property name="message" value="Leave empty row after class/interface/enum definition!"/>
<property name="severity" value="error"/>
<property name="fileExtensions" value="groovy,java"/>
</module>
<module name="RegexpMultiline">
<property name="format" value="[^\n{]\n\}\n"/>
<property name="message" value="Leave empty row before end of class/interface/enum!"/>
<property name="severity" value="error"/>
<property name="fileExtensions" value="groovy,java"/>
</module>
对此有很多主题和讨论: