大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
在Java中,我们常用List来存储数据,但是我们怎么判断它是否成功带来了我们需要的数据呢,以ArrayList为例,
老规矩,先说结论,建议(list!=null&&!list.isEmpty());
接下来是正文:
20190723,这鬼天气又闷又热.远在1.99公里外的同事问了我一个问题,,一瞬间,我留下了激动的泪水.日日划水的我终于被发现了一丝价值.真是美好的一天啊.
首先我们先看list==null
这意味着该list没有被初始化,在堆中没有地址,切记这个时候调用任何方法都会抛出NullPointerException.
这个情况常见于从数据库取值时.new不new都没关系,主要是后面那部分为null
其次,我们看list.isEmpty(),
这是list自带的一个方法,我们查看源码,得知ArrayList的isEmpty()是这么一回事:
isEmpty()里比较的是list.size()==0,list.size()的值会根据list中元素数量的变化而变化,前面我们说过,如果这个list没被初始化,那调用所有的方法都会空指针,很明显,这个被初始化过了.==0说明这里面没有元素.
所以,我们既要判断这个list==null也要判断list.isEmpty().
最后,我们还探讨了一个例外,就是
ArrayList AList = new ArrayList<>();
AList .add(null);
这个时候,(list!=null&&!list.isEmpty)就不适用了,因为size()为1,而isEmpty为false,有图有真相;
但是,我们本着不负责任的精神一致决定等以后出现这个问题时,再单独加一个lsit.get(0)==null进行判断,如果大家对我上述内容有异议或者对最后的问题有好的解决方法或者对我有什么吐槽,欢迎私信或者留言.
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/198359.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...