代码之家  ›  专栏  ›  技术社区  ›  Michal Kordas FrantiÅ¡ek Hartman

Java代码中方法签名后禁止括号

  •  6
  • Michal Kordas FrantiÅ¡ek Hartman  · 技术社区  · 6 年前

    在我最近的项目中,我遇到了编译得非常好的代码,但是这对于任何读者来说都是非常令人惊讶的,并且不应该通过静态分析。

    class BracketsAfterMethodSignature {
      Object emptyArray()[] {
        return new Object[]{};
      }
    }
    

    我们使用Checkstyle、PMD、ErrorLoven和SonarLint,但这些工具都不会抱怨这种构造。是否有任何可以启用的规则或可用于防止此类代码的工具?

    显然是格子风格的 ArrayTypeStyle

    编辑

    我在一个文件上运行静态分析 .groovy 分机和声纳说这个代码没问题。将扩展名更改为.java后,它检测到了问题。事实上,在更新到8.18之后,Checkstyle也能正确地发现它。

    2 回复  |  直到 6 年前
        1
  •  4
  •   Hulk    6 年前

    声纳有规则 squid:S1195 Array designators "[]" should be located after the type in method signatures

    默认情况下,此规则在Java的“Sonar way”质量概要文件中启用,并将其分类为“代码气味”,默认严重性为“轻微”。

    4.0.0.201810170711 在方法声明后的开始括号中正确放置标记(在没有配置SonarQube服务器连接的项目中)。 Eclipse版本为 2018-09 (4.9.0) .

        2
  •  1
  •   rveach    6 年前

    支票样式 ArrayTypeStyle 将支持在方法定义上打印冲突,其中括号放在方法名称上,而不是从版本8.18开始的返回类型上。

    https://github.com/checkstyle/checkstyle/issues/6301

    推荐文章