码迷,mamicode.com
首页 > 其他好文 > 详细

List 集合使用时写到的bug

时间:2020-05-20 18:37:54      阅读:42      评论:0      收藏:0      [点我收藏+]

标签:code   rate   rds   ima   就是   出现   数据   als   对象   

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

标签:code   rate   rds   ima   就是   出现   数据   als   对象   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!