首页 > 其他 > 详细

List 集合使用时写到的bug

时间:2020-05-20 18:10:17      阅读:40      评论:0      收藏:0      [点我收藏+]
if (null !=merchLadderRatesRecords && merchLadderRatesRecords.size() !=0 && merchLadderRatesRecords.isEmpty()
){
for (MerchLadderRateRecord merchLadderRateRecord : merchLadderRatesRecords) {
merchLadderRateRecord.setInsertTime(date);
merchLadderRateRecordMapper.save(merchLadderRateRecord);
}
}

这个其实是我自己忘记加!号了导致结果一直是false也就是永远都不会进入这个方法体内,当时也忙就很随心得写了一下,如果我加上!号他是正确的,但是也是多此一举,我们看下List的isEmpty的源码

技术分享图片

 

 

 如我我们用list.size() 的话就不用用isEmpty这个方法,用isEmpty是在 这个List的内部对它做了判断。所以我们在对List进行 非空判断的时候要用

list!=null && list.size>0,这两个条件是必须的,因为假如你只用list.size()做判断的话也会出现意想不到的结果。看示例:

技术分享图片

 

 list.isEmpty()可以判断出list为空所以是false , size呢是因为我们在list当中插入了一条空的数据所以判断他有一条数据,其次是对象的创建

看示例:技术分享图片

 

 空指针了是因为 list1 声明了该对象为空也就没有存在内存当中,因为 isEmpty是list1内部的方法你没有声明这个对象,你用它当然会空指针了。当我们用 List  list = new ArrayList的时候才会在内存中为对象分配内存地址。

  1. 总结 当对象没有创建的时候我们不能用  isEmpty() 这个方法,会出现空指针异常  
  2.  判断list的是否为空我们可以用  list != null &&  list.size()>0 来判断。
  3. 在使用一些对象方法的时候一定要看底层源码或者我们理解他的意思。再一个是我们要认真点多多自测。

 

List 集合使用时写到的bug

原文:https://www.cnblogs.com/hzbao/p/12925036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!