日期:2014-05-20  浏览次数:20871 次

关于List的isEmpty()和size()方法的疑惑?
list.isEmpty();
list.size();

当list中没有数据,list.size();会不会报异常,why ?

当Hibernian返回的list没有数据时:
用list != null 就判断不出来, list.size()>0 就可以,list.isEmpty(); 就报错, why

大家一起讨论,互相帮忙!

谢谢!

------解决方案--------------------
1.当list中没有数据,list.size();会不会报异常
List是个接口,以它的实现类ArrayList为例子,
不会报异常。
返回 0 而已。
只要你的调用者 list 不为null即可。

2.
当Hibernian返回的list没有数据时:
用list != null 就判断不出来, list.size()>0 就可以,list.isEmpty(); 就报错

list中没有数据,和返回的对象本身为null是不一样的。
如果返回的对象 list 不为null,然后调用list.isEmpty() 还报错,
我就不懂了,
报了什么错误呢?
------解决方案--------------------
第二个问题 list 如果没有初始化就调用isEmpty()方法确实会报错..
------解决方案--------------------
楼主这样的水平应该暂时不要学 Hibernate。
------解决方案--------------------
null与非null的关系 支持楼上的们
------解决方案--------------------
告诉你一个本质的东西。
只要一个对象不为Null,就能调用这个对象的方法。否则就会抛出空指针异常
list中没有数据,说明这个对象还是有的。只不过这个list中啥东西都没有放而已。
所以list.isEmpty(); list.size(); 都会正确的返回值的。
Hibernate会返回一个List,你说用list.size()>0 就可以,list.isEmpty(); 我感到很费解。
因为list.isEmpty(); 这句相当于list.size()==0.
------解决方案--------------------
当list中没有数据,list.size();不会报异常返回0罢了
至于Hibernian 米学过 不了解