在带有 SonarQube 的 Java 中,如何修复“只应检查结果的符号”

Flo*_*ain 3 java sonarqube

我有以下代码行(其中“next”是 BigDecimal):

if (next.compareTo(maximum) == 1) {
    maximum = next;
}
Run Code Online (Sandbox Code Playgroud)

在相等比较时,SonarQube 给了我这个警告:

只应检查结果的符号。sonarqube-inject

它实际上是什么意思,我该如何解决?

keu*_*leJ 5

您应该只测试它是否大于零:

if (next.compareTo(maximum) > 0) {
                        maximum = next;
                    }
Run Code Online (Sandbox Code Playgroud)

来自compareTo 方法的API 文档

当此对象小于、等于或大于指定对象时,返回一个负整数、零或正整数。