【问题标题】:Checkstyle: enforce whitespace on inside of array literalsCheckstyle:在数组文字内部强制使用空格
【发布时间】:2020-09-23 21:05:43
【问题描述】:

我想知道是否有任何规则可以违反:private static final long[] ARRAY = {1L};,因为我宁愿这样:... = { 1L };

【问题讨论】:

    标签: java checkstyle


    【解决方案1】:

    是的,WhitespaceAround 接受 ARRAY_INIT 令牌作为配置参数:

    例子:

    <module name="WhitespaceAround">
      <property name="tokens" value="ARRAY_INIT"/>
    </module>
    

    编辑:目前看来这是不可能的(使用默认检查样式)。 WhitespaceAround ARRAY_INIT 仅检查外部空白,而不检查内部空白。 NoWhitespaceAfter 允许指定 ARRAY_INIT,但 WhitespaceAfter 不允许 :(

    我发现了以下 github 问题 https://github.com/sevntu-checkstyle/sevntu.checkstyle/issues/472,其中包含一个注释,其中包含一个可能的自定义检查实现,以断言数组文字内的空格。票证的最后一次更新是在 2016 年,我找不到实现是 sevntu.checkstyle 项目,但这可能是您的起点。也许您可以将实现捆绑在一个单独的 jar 中,并将其作为自定义检查包含在您的 checkstyle 配置中。

    【讨论】:

    • 感谢您的回复。我试过了,它没有显示任何违规行为。
    • @DanielGoers 我进行了更多研究,看起来这不可能开箱即用。我发现了一个 github 问题,但是它提供了一个可能的解决方案。请参阅我的更新答案。
    猜你喜欢
    • 2021-05-20
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多