实体中定义list集合属性,get使用后一直报空指针,然而new一个新的却又没有问题
虽然知道怎么解决 ,但是一直想不通为什么,当初弄了一个多小时,今天又遇到了这个问题顺便记录一下
第一种形式:
/**
* 订单明细
*/
private List<OrderDetailDO> orderDetails;
定义集合属性的时候这样是没有问题的,但是在getOrderDetails使用的时候就会报空指针异常
第二种形式:
private List<OrderDetailDO> orderDetails = new ArrayList<>();
原因:
其实这样定义出来的是一个为null的集合,什么是空的,什么又是为null呢?
集合为空: 集合本身是存在的,只是里面没有元素填充.
集合为null:集合本身并不存在(空指针原因!)
解决:
第一种形式定义时在使用的时候需要进行对这个集合进行判断,如果为null就new ArrayList();
不过每次使用时都要进行判断.
第二种形式不用多说就是直接new一个,可以直接使用