【发布时间】:2019-05-20 04:30:57
【问题描述】:
在我最近的项目中,我遇到了编译得非常好的代码,但是对于任何读者来说都是非常令人惊讶的,并且不应该通过静态分析。
class BracketsAfterMethodSignature {
Object emptyArray()[] {
return new Object[]{};
}
}
我们使用 Checkstyle、PMD、ErrorProne 和 SonarLint,但这些工具都没有抱怨这种结构。是否有任何可以启用的规则或可用于防止此类代码的工具?
显然 Checkstyle 的 ArrayTypeStyle 不包括这种情况。
编辑
我正在对扩展名为 .groovy 的文件运行静态分析,SonarLint 说这段代码很好。将扩展名更改为 .java 后,它检测到问题。事实上,在更新到 8.18 Checkstyle 之后,它也正确地发现了它。
【问题讨论】:
-
如果找不到合适的规则。考虑编写自己的正则表达式规则RegexpSinglelineJavaCheck
-
@Hulk 确实!我以错误的方式使用 SonarLint。请发表您的评论作为答案,我会接受。
-
我用github.com/checkstyle/checkstyle/issues/6301添加了对checkstyle的支持
-
@RoyShahaf 愚蠢的错误:我在一个扩展名为 .groovy 的文件上运行它,SonarLint 说这段代码没问题。将扩展名更改为 .java 后,它检测到问题
-
容易出错 does check for this,但严重性是 SUGGESTION。也许你可以增加严重性?
标签: java checkstyle pmd sonarlint errorprone