为什么 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>
最佳答案
这是因为缺乏测试和代码问题。
通常,此检查会验证某些标记上方是否只有一个空行。当 import
或 package
上方有多个不必要的空格时,它运行良好。当检查到达 class
声明时,它也会验证上面的行,但是......
class
token 获得的,它是 null
,因为在文件 null
整个验证在 EmptyLineSeparatorCheck.java#L216 这个错误是作为 checkstyle/checkstyle#2067 提交的,希望在 Checkstyle 6.11 中修复。
关于Checkstyle EmptyLineSeparator 在类声明之前不会在多个空行上失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32332886/