四时宝库

程序员的知识宝库

10年大牛告诉你 如何告别java空指针的烦恼

在实际的系统运行过程中,难免会出现报NullPointerException空指针的错误,造成这样的本质原因就是数据或者对象为空,导致程序进一步执行的时候报错!

这时候你会写一堆的if判断,看起来代码非常的又臭又长的。同时if判空越多会造成过多的代码分支,后续代码维护也就越来越复杂。

从Java8开始引入了一个新类 java.util.Optional,这是一个对象的容器,意味着可能包含或者没有包含一个非空的值。下面重点看一下Optional的常用方法:

publicfinalclassOptional< T> {

// 通过指定非空值创建Optional对象

// 如果指定的值为null,会抛空指针异常

public static<T> Optional<T> of(T value){

returnnewOptional<>(value);

}

// 通过指定可能为空的值创建Optional对象

public static<T> Optional<T> ofNullable(T value){

returnvalue == null? empty : of(value);

}

// 返回值,不存在抛异常

public T get{

if(value == null) {

throw new NoSuchElementException( "No value present");

}

return value;

}

// 如果值存在,根据consumer实现类消费该值

public void ifPresent(Consumer<? superT> consumer) {

if(value != null)

consumer.accept(value);

}

// 如果值存在则返回,如果值为空则返回指定的默认值

publicT orElse(T other){

return value != null? value : other;

}


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接