今天在改bug时,遇到判断一个值A是否null的状况,A值是从数据库查询出来的; 可是在个人特殊处理下,用sql语句在数据库中查询是没有值的,可是判断中A值是不等于null的。 最后,查看dao层被调用的方法发现,return (list == null || list.isEmpty()) ? "" : list.get(0); 其中list是集合,上一位同事写的判断返回值有问题,在Java中,""是不等于null的。
接下来,顺带讲讲集合list与空之间的一些联系 1. 判断集合list是否为空能够这样 if(list == null || list.size() == 0) 2. list.size() == 0 与 list.isEmpty()的区别 没有区别,list.size()返回集合list中有多少个元素,而list.isEmpty()中是否有元素。 若是业务中,有判断集合list中是否有元素时能够用list.isEmpty()比较符合逻辑 3. list == null 与 list.isEmpty() 是否有区别 list == null 判断集合是否为空,能够理解为这个集合是否存在 list.isEmpty() 判断集合是否有元素,这个集合是存在的,这是它们二者的区别