我想比较值并在找到某些值时执行某些条件。在Java中我尝试使用这段代码:
if(item.getLenght().compareTo(BigDecimal.valueOf(50))
|| item.getSocre().compareTo(BigDecimal.valueOf(500))
|| item.getAge().compareTo(BigDecimal.valueOf(5000)))
{
....... do some action
}
但是我收到错误
Operator '||' cannot be applied to 'int', 'int'
实施此检查的正确方法是什么?
BigDecimal#compareTo(BigDecimal)
返回 int
,而不是 boolean
,因此运算符 ||
将不起作用。
您需要稍微更改一下代码:
if (item.getLenght().compareTo(BigDecimal.valueOf(50)) == 0
|| item.getSocre().compareTo(BigDecimal.valueOf(500)) == 0
|| item.getAge().compareTo(BigDecimal.valueOf(5000)) == 0) {
// do something funny
}
Compare to 方法不返回 boolean,它返回 int。这是规范https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#compareTo(java.math.BigDecimal) 所以如果你想检查长度是否等于 50,你需要写:
item.getLength().compareTo(BigDecimal.valueOf(50)) == 0
这同样适用于代码中的所有其他条件。