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

Mic*_*das 6 java checkstyle pmd errorprone sonarlint

在我最近的项目中,我遇到了编译完全正常的代码,但对任何读者来说都是非常令人惊讶的,不应该通过静态分析.

class BracketsAfterMethodSignature {
  Object emptyArray()[] {
    return new Object[]{};
  }
}
Run Code Online (Sandbox Code Playgroud)

我们使用Checkstyle,PMD,ErrorProne和SonarLint,但这些工具都没有抱怨这样的构造.是否有可以启用的规则或可用于阻止此类代码的工具?

显然,Checkstyle的ArrayTypeStyle不包括这种情况.

Hul*_*ulk 4

Sonar 有规则鱿鱼:S1195 数组指示符“[]”应位于方法签名中的类型之后

默认情况下,该规则在 Java 的“声纳方式”质量配置文件中启用,并将其分类为“代码异味”,默认严重性为“轻微”。

因此,SonarLint 应突出显示问题中的代码 - 在我的测试中,eclipse 插件“SonarLint for Eclipse”版本4.0.0.201810170711正确地将标记放置在方法声明后的左括号处(在没有配置 SonarQube 服务器连接的项目中)。Eclipse 版本是2018-09 (4.9.0).