空值处理:如何避免空指针异常?
常见的5种空指针异常场景
- 参数值是Integer等包装类型时,因为自动拆箱出现了空指针异常
- 字符串比较出现空指针异常
- 诸如ConcurrentHashMap这样的容器不支持Key和Value为null,强行put null的Key或Value会出现空指针异常
- A对象包含了B,在通过A对象的字段获得B之后,没有对字段判空就级联调用B的方法
- 方法或远程服务返回的List不是空而是null,没有判空就直接调用List的方法出现空指针异常
解决方法
使用Optional.ofNullable方法捕获null,然后使用orElse方法给null的字段赋值,如下:
import java.util.Optional;
// 如果var为null,则初始化为""
Optional.ofNullable(var).orElse("");