1、问题解析
本质的原因是你的对象引用为null,但却调用了isEmpty()方法造成的。
因为:isEmpty()是判断容器是否为空,但是容器本身是存在的只是没有值,需要区分如下代码的不同点:
1、List<String> list=new ArrayList<>();
2、List<String> list=null;
2、正确用法
正确的用法:
List<String> list=new ArrayList<>();
list.isEmpty();//输出结果就是true。因为list中没有任何的数据。
不推荐用法:
此时list的值由test()方法返回值决定,如果test()没有值,就会造成list为null。
这个时候list.isEmpty()就会抛异常:
NullPointerException:Cannot invoke "java.util.List.isEmpty()" because "list" is null.
List<String> list=引用.test();
list.isEmpty();//输出结果就是true。因为list中没有任何的数据。
如果list存在为null的情况,那就使用如下用法:
List<String> list=null
if(list!=null){
//编写不为null的代码段
}