空指针NPE
Animal dog = new Animal();
System.out.println(dog.getName().equals("tom"));
空指针异常在日常开发和学习中,是非常容易遇到的问题。由于代码编写不够谨慎或者不规范,就会遇到这种异常。其实最常见的就是在参数的传递或者试图get一个值时,set了一个null空对象,导致抛出了**NullPointException **
个人认为有意识的防止空指针异常是非常有必要的,即边界问题和减少系统异常的情况是非常有必要的。
“判空“
判断是否是空对象(null),是最好处理的办法,很简单,只要对象不空,自然就不会出现空指针异常了。
常用的方法
空对象
Objects.isNull();
空集合
CollectionUtils.isEmpty();
new HashMap().isEmpty();
new ArrayList().isEmpty();
空字符串
StringUtils.isEmpty();
手动if判断
if (null != object){
//xxxx
}else{
//xxxx
}
使用默认值
有时候可以采用使用默认值的方法,避免 NPE
对象属性有默认值
@Data
public class Animal {
private String name = "";
}
如果为空,使用默认值
HashMap hashMap = new HashMap();
hashMap.getOrDefault(dog.getName(),"");
Optional工具类
String name = Optional.ofNullable(dog.getName()).orElse("tom");