Mybatis-Plus查询出来的list集合能否用size==0做判断

本文分析了在项目场景中,使用Mybatis-Plus查询时,关于`size`判断的合理性,指出查询结果集合不会为null且`CollectionUtils.isEmpty()`实际上检查的是null和size=0。作者强调熟悉常用方法和探究精神的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

        今天一个其他组的副组长审计代码,查到说用size判断对吗?你这个peopleRooms一定不为空吗?不得用CollectionUtils判断? 对我发出了灵魂拷问. 我们先分析一下 代码如下


代码分析:

         1.首先Mybatis-Plus查询出来的list集合不可能为NULL,具体源码大家感兴趣的可以去搜索,简单来讲就是查询之前会先创建一个空的list集合,然后把你查询出来的数据添加进集合里,如果数据为空那会就返回空的集合.所以根据此依据我们总结出 这个集合不可能存在为NULL的情况
         2.我们接下来看CollectionUtils.isEmpty()的判空方法,它会判断集合是否为NULL,这个在第一点的时候我们已经论述过了或者collection.isEmpty(),接下来我们点进去看这个方法

             然后发现是个接口,我们接下来去看ArrayList的实现方法

          然后我们就发现这个实现类是返回了一个size==0的判断     

  


结果总结:

         根据代码分析的1和2总和来看:

        1. 首先这个集合不可能为null

        2.CollectionUtils.isEmpty() 判断的是是否为null 和是否size==0

那结合1、2点来看我们其实判断这个peopleRooms.size == 0 是一点问题都没有的,因为CollectionUtils.isEmpty() 的判断这个集合是否为NULL我们根本不需要因为它不可能为空剩下的就是在判断size是否为0而已,你可以说我写的不规范但是从逻辑上来说这样写一点问题没有


感悟:

        经过此事件,我深深的感受到了以后大家对自己的代码一定有个自己的认知对咱们常用的方法和一些框架增加一些熟悉度,而且有问题一定要去自己探究不一定人家说的就一定是对的我们要有探究精神, 希望大家可以通过阅读源码增强自己对知识的掌握和对自己的自信,不要轻易听信别人的话来否定自己的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值