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



最近我遇到了编译完全很好的代码,但是对于任何读者来说都是非常令人惊讶的,不应通过静态分析。

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

我们使用CheckStyle,PMD,ErrorProne和Sonarlint,但这些工具都没有在这种构造上抱怨。是否可以启用任何规则或可以用于防止此类代码的工具?

显然CheckStyle的ArrayTypestyle不包括这种情况。

编辑

我在使用.groovy扩展的文件上运行静态分析,Sonarlint表示此代码很好。将扩展名更改为.java后,它检测到了问题。实际上,在更新到8.18之后,CheckStyle也正确发现了它。

声纳具有规则squid:S1195数组指定器" []"应位于方法签名中的类型之后

默认情况下以Java的" Sonar Way"质量配置文件启用此规则,并将其分类为"代码气味",默认的严重性" Minor"。

因此,Sonarlint应该在问题中突出显示代码 - 在我的测试中,Eclipse -Plugin" Eclipse的Sonarlint for Eclipse"版本4.0.0.201810170711在方法声明之后,在开放式上正确放置了标记物(在项目中没有配置的Sonarqube Server Connection,)。Eclipse版本是2018-09 (4.9.0)

CheckStyle的ArrayTypestyle将支持在方法定义上打印违规行为,其中括号放在方法名称上,而不是从版本8.18开始的返回类型。

请参阅https://github.com/checkstyle/checkstyle/issues/6301

相关内容

  • 没有找到相关文章

最新更新