A.compareTo(B)用来比较A是否大于B
他返还的是一个Boolean值,如果A大于B,返还1。如果A等于B,返还0。如果A小于B,返还-1
案例
if(CommonData.DIFFQTY_ONE.equals(reqDto.getDiffQty())){
//已配齐
respDtos = respDtos.stream().filter(x -> BigDecimal.ZERO.compareTo(x.getUnMatchQuantity()) >= 0).collect(Collectors.toList());
}else{
//未配齐
respDtos = respDtos.stream().filter(x -> BigDecimal.ZERO.compareTo(x.getUnMatchQuantity()) < 0).collect(Collectors.toList());
}
DIFFQTY_ONE这个常量的值为1,DiffQty代表是否齐全(当DiffQty=1时代表齐全,DiffQty=0时代表不齐全)
x.getUnMatchQuantity()代表不齐全的数量,当不齐全的数量为0时即表示齐全~
翻译一下:
BigDecimal.ZERO.compareTo(x.getUnMatchQuantity())
代表0是否大于“获取到的待配数量”,假如此时待配数量为-2,会返还一个bool值1,代表0>-2
>= 0
紧接着1>=0成立,不会走else中的代码。翻译成人话,1>=0表示0大于不齐全的数量=》不齐全的数量小于0=》代表齐全!!!