Java Sonar规则,用于报告if-then语句中Objects.isNull()和Objects.nonNull()的使用情况

Java Sonar规则,用于报告if-then语句中Objects.isNull()和Objects.nonNull()的使用情况,java,sonarqube,static-analysis,Java,Sonarqube,Static Analysis,Javadoc提供了这些方法,并清楚地说明了它们的用途。e、 g 此方法可用作谓词、筛选器(Objects::nonNull) 但是我看到开发人员开始在if-then语句中更频繁地使用这些方法。e、 g if (Objects.isNull(foo)) { foo = new Foo(); } if (Objects.nonNull(bar)) { bar.doSomething(); } 我想这些新方法是否比传统的==和更干净/更容易阅读是主观的=运算符 对于我们这些不喜欢这种方法

Javadoc提供了这些方法,并清楚地说明了它们的用途。e、 g

此方法可用作谓词、筛选器(Objects::nonNull)

但是我看到开发人员开始在
if-then
语句中更频繁地使用这些方法。e、 g

if (Objects.isNull(foo)) {
  foo = new Foo();
}

if (Objects.nonNull(bar)) {
  bar.doSomething();
}
我想这些新方法是否比传统的
==
更干净/更容易阅读是主观的=运算符


对于我们这些不喜欢这种方法的人(例如,在设计它们的目的之外使用这些功能),是否有声纳规则来报告这种情况?

“我想这些新方法是否比传统的
=
!=
操作符更干净/更容易阅读是主观的。”不,这不是主观的。运营商客观上更好。这些方法的Javadoc明确说明了它们的预期用途“这个方法的存在是为了用作谓词,
filter(Objects::isNull)
”我不记得Sonar在引擎盖下使用了什么工具,但是当然可以指出这些方法的使用极为不当。@Michael,我正努力做到圆滑,只关注声纳规则:-)你可以查看网站上支持的所有规则。