java.lang.NullPointerException空指针异常报错和非空判断方法

it2026-03-02  3

报错:

java.lang.NullPointerException


问题描述:

代码:

Map<String, Object> params = null; params.get("earliestTime");

报错:


原因分析:

因为params 为null,所以调用params.get(“earliestTime”)就会报错


解决方案:

对params 和params.get(“earliestTime”)进行非空判断

Map<String, Object> params = null; if (params !=null){ if (params.get("earliestTime") !=null){ System.out.println(params.get("earliestTime")); } }

注意:非空判断必须一级一级判断,例如:

Map<String, Object> params = null; if (params.get("earliestTime") !=null){ System.out.println(params.get("earliestTime")); }

依然会报错,因为没有预先对params 进行非空判断

Map<String, Object> params = null; if (params !=null){ System.out.println(params.get("earliestTime")); }

也会报错,因为因为没有对params.get(“earliestTime”)进行非空判断

内容追加

非空判断方法:

一般使用if(xxx != null)就可以了

Map<String, Object> params = null; if (params !=null){ }

但是对于String类型的变量要使用StringUtils.isNotBlank(xxx)方法进行非空判断

String a = "a"; if (StringUtils.isNotBlank(a){ }

因为使用 != 对String类型的变量比较的是变量的地址值而不是变量本身的值,String类型的变量比较本身的值需要使用equals()方法进行比较,而且StringUtils.isNotBlank(xxx)等效于!xxx.equals(null) && earliestTime != “”

最新回复(0)