碰到一个 BigDecimal 的空指针
@Test
public void testNull(){
int i = BigDecimal.ZERO.compareTo(null);
System.out.println(i);
}
此时会抛出空指针异常,查一下源码
public int compareTo(BigDecimal val) {
// Quick path for equal scale and non-inflated case.
if (scale == val.scale) { // [1]
long xs = intCompact;
long ys = val.intCompact;
if (xs != INFLATED && ys != INFLATED)
return xs != ys ? ((xs > ys) ? 1 : -1) : 0;
}
int xsign = this.signum();
问题出在位置 [1] 这里