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

集合框架null与size=0

时间:2016-08-28 01:18:26      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

被QA人员一眼指出来的问题,唉,好丢人

上栗子??

  如何判断一个集合是空?

技术分享

  运行后会输出什么?

  显然第53行会报运行时错误:java.lang.NullPointerException

为什么呢?

  首先分析第51行与第52行的区别:

    51行:仅声明一个stringList1的引用

    52行:在内存中开辟空间,并将内存地址赋值给stringList2

  使用javap反编译java文件:

技术分享

  大概的意思很显然,第51行源代码就是0,1行,只是声明了一个变量并没有在内存开辟存储空间

怎么判空?

  所以应该先判断是否为null,再判断size>0,这其中还有 || 带来的短路功能

技术分享

  或者直接用:

  import org.apache.commons.collections.CollectionUtils;

  CollectionUtils.isEmpty();

  看一下它的实现:

技术分享

集合框架null与size=0

标签:

原文地址:http://www.cnblogs.com/zhengbin/p/5814139.html

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