陕西高端品牌网站建设价格,个人怎么注册商贸公司,2001国产卡一卡二新区,免费游戏网页一、问题描述
serve层定义一个对象集合接收mybatis返回的结果#xff0c;查询结果为空#xff0c;但是接收集合对象长度却为1#xff0c;集合内部显示All elements are null#xff1b;导致在直接调用list集合中一些方法时导致报错java.lang.NullPointerException: null …一、问题描述
serve层定义一个对象集合接收mybatis返回的结果查询结果为空但是接收集合对象长度却为1集合内部显示All elements are null导致在直接调用list集合中一些方法时导致报错java.lang.NullPointerException: null
二、原因分析
1、使用了MySQL中的聚合函数 selectIFNULL(GROUP_CONCAT(B00),) as examineRange,IFNULL(GROUP_CONCAT(B0101),) as examineRangeName
from(selecta.B00,b.B0101fromjxkh_khdxfwxd ainner join b01 b ona.B00 b.B00order bya.PORDER)a对于我们来说这条数据是空的也仅仅是因为我们要查询的字段是空的但是其他数据都不是空的所以他把这个数据数据库并没有当作一条空数据来看还是映射给了我们的对象导致List的内部有一个空对象因为list内部是可以支持null的。
三、解决方案
手动将这种情况给排除掉。或者先把list中的null元素给排除掉然后在进行业务的数据处理
//移除第一个null
list.remove(null);
//或移除所有的null元素
list.removeAll(Collections.singleton(null));或者也可通过增加判断来进行处理
if (CollectionUtils.isNotEmpty(listData) listData.get(0) ! null) {/*业务逻辑代码*/}