Java 声纳线头;“比较”;不应检查结果的具体值

Java 声纳线头;“比较”;不应检查结果的具体值,java,sonarqube,sonarlint,Java,Sonarqube,Sonarlint,我正在比较两个值,并得到sonar lint投掷“只应检查结果的符号”此问题 代码: if (recBalanceAmt.compareTo(recRolloverEligibility) == 1) { recExpAmt = recBalanceAmt.subtract(recRolloverEligibility); } 如何解决此问题?声纳建议将比较的结果与0进行检查,而不是直接返回1,-1 if (recBalanceAmt.compareTo(recRolloverEli

我正在比较两个值,并得到sonar lint投掷
“只应检查结果的符号”此问题

代码:

if (recBalanceAmt.compareTo(recRolloverEligibility) == 1) {
     recExpAmt = recBalanceAmt.subtract(recRolloverEligibility);
}

如何解决此问题?

声纳建议将
比较的结果与
0
进行检查,而不是直接返回
1
-1

if (recBalanceAmt.compareTo(recRolloverEligibility) > 0) {
您可以在

返回:如下所示的负整数、零或正整数 对象小于、等于或大于指定对象


为什么?与1比较不好吗?或者与1进行比较有什么问题吗?根据合同,compareTo方法可以返回任何正值,不一定是1,因此如果该方法返回2,而您将结果与1进行比较,您的条件将不会满足。