如图:
近日在测试的时候遇到在LoanInstallmentBorrow不为空的情况下出现空指针异常的情况,经过反复验证,发现是因为loanProductId这个字段使用的是Long的包装类的原因.具体分析就是:这个字段在遍历的是null值,包装类自动拆箱的时候调用了其longValue方法,造成空指针异常.
今天看阿里巴巴代码规范发现包装类的比较是必须要使用equals完成的,因为这是对象之间的比较.虽然Integer有个常量池-128~127,赋值会在IntegerCache.cache中产生,可以直接使用==进行比较.但是超过这个范围都会以引用类型在堆内存中创建,对象没有办法使用==进行比较,所以使用equals比较是合适,不会出现这个问题.