开发过程中你应该都会遇到这种情况,我们需要判断集合是否为空并且是否为null,那这里就来详细讲讲这两者的区别。
首先,我们要知道,Java中新建一个list对象,默认值是空,而非null;而当我们连接数据库查询返回集合,当没有查询到数据时,返回的集合便是null。
沿用一个例子:
我有一个空着的水杯(list),而你没有,那你是null,我的size为0。你想装水就需要自己去买个水杯(new ArrayList();),但是我就可以直接装水(list.add(水))。你要是没有杯子直接倒水,水就流出去啦(空指针异常)。
如何判断是否为空?
用isEmpty()或者list.size() == 0都能判断list内容是否为空,当然前提是这个集合不是null,所以判断前我们一般会先创建集合。
如何判断是否为null呢?
用list == null,当集合不存在时便是null,可以理解成没有给它分配内存空间。
这里就要注意先判断是否为null再判断是否为空,不然为null的情况下还是会抛出空指针异常。