Checkstyle EmptyLineSeparator在类确认之前不会在多个空白行上失败

问题描述 投票:3回答:2

为什么Checkstyle无法将import语句之后但class声明之前的空行识别为违规?

package b.pi.persistence.hibernate;

import java.lang.String;



// ^^^ much space! Why is the above not a violation of EmptyLineSeparator   
public class CheckstyleExample {

  ...
}

已声明以下检查:

<module name="EmptyLineSeparator">
  <property name="allowNoEmptyLineBetweenFields" value="true"/>
  <property name="allowMultipleEmptyLines" value="false"/>
</module>
checkstyle
2个回答
4
投票

这是因为缺乏测试和代码中的问题。

通常,此检查将验证是否有不多于一个空行上方一些令牌。当importpackage上方有多个多余的空格时,此功能会很好地工作。当检查到达class声明时,它还将验证上面的行,但是...

此错误已作为checkstyle/checkstyle#2067提交,希望可以在Checkstyle 6.11中实现。


0
投票

即使与此问题有关的Checkstyle v8.20上的另一个错误修复,仍然无法正常工作:https://github.com/checkstyle/checkstyle/issues/5981

我现在将使用简单的RegexpMultiline来确保没有多个空行:

<module name="RegexpMultiline">
    <property name="message" value="Multiple empty lines after this line."/>
    <property name="format" value="[\r]?\n\s*[\r]?\n\s*[\r]?\n"/>
    <property name="fileExtensions" value="java"/>
</module>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.