Author:赵志乾
Date:2020-04-04
Declaration:All Right Reserved!!!
踩坑:
场景:Vo对象中的数值类型通常使用对应的包装类。
做法:直接使用equals方法或者==进行相等判断。代码如下:
public class Vo{
private Integer age;
// 省略getter和setter函数
}
public void test(){
Vo vo = new Vo();
// 空指针
vo.getAge()==12;
// 空指针
vo.getAge().equals(12);
}
空指针异常原因:包装类属于引用类型,其默认值为null。
解决方案:
针对包装类进行操作时要先判断其是否为空。
包装类操作报空指针异常还有一个容易被忽略的场景,就是隐式开箱操作。比如:数据库表中的某个字段可以为空,其类型为INT。当只查询某一条数据行的该字段时,如果字段值为null,并且返回值使用的是int,此时会发生隐式开箱操作,从而产生空指针异常。为避免此类问题,建议使用包装类而非基础类型。