报错:
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 != “”