空指针的避免
对一个为null的变量或者对象进行操作时,就会容易出现这种报错。
代码语言:javascript复制Object object = null;
String string = object.toString();
上面的代码就会出现空指针的错误。
如何避免空指针
代码语言:javascript复制1.字符串比较,常量放前
if(status.equals(SUCCESS)){
}
这时候status可能为null会出现空指针异常,可以把常量放前面,就能避免空指针异常。
代码语言:javascript复制if(SUCCESS.equals(status)){
}
2.初始化默认值
在对象初始化的时候给他一个默认值或者是默认构造实现
代码语言:javascript复制User user = new User();
String name = StringUtils.EMPTY;
3.返回空集合
在返回一个集合的话,默认是null,统一规范返回一个空集合。
代码语言:javascript复制public List getUserList(){
List list = userMapper.getUserList();
return list == null?new ArrayList():list;
}
4.断言 assert
断言是用来检查程序的安全性的,在使用之前进行条件检查,如果不符合条件就会报error,符合就继续。
代码语言:javascript复制assert name == null:"name不能为null"
输出
代码语言:javascript复制Exception in thread "main" java.lang.AssertionError:name不能为null
5.Optionl
jdk8新特性
of
代码语言:javascript复制public static <T> Optional<T> of(T value){
return new Optionl<>(value);
}
为value创建一个Optionl对象,如果value为空则会爆出空指针异常。