参考:https://www.runoob.com/java/java8-optional-class.html

java8中引入了一个新类:Optional,用于日常编码中对空指针异常进行限制和处理:

 Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

Optional 类的引入很好的解决空指针异常。

返回值

方法

说明

static <T> Optional<T>

empty()

返回一个空 ​​Optional​​实例

static <T> Optional<T>

of(T value)

将非空值设置到Optional实例并返回该实例

static <T> Optional<T>

ofNullable(T value)

将值设置到Optional实例中并返回该实例

T

get()

如果一个值是在这 ​​Optional​​​,返回值,否则将 ​​NoSuchElementException​

T

orElse(T other)

如果当前有值且非空则返回该值,否则返回 ​​other​

 

 

类声明

以下是一个java.util.Optional<T>类的声明
public final class Optional<T> extends Object

 


测试:

packageimportpublic classpublic static voidnull);  //NullPointerException
Optional.ofNullable(null);//可放入null值(允许为null)
System.out.println(Optional.ofNullable("1111").get());//输出1111
Optional.ofNullable(null).get();//Optional.get() NoSuchElementException,当Optional中放的是null时用get()取则报该异常
System.out.println(Optional.ofNullable(null).orElse("2222"));//输出2222
System.out.println(Optional.ofNullable("1111").orElse("2222"));//输出1111
System.out.println(Optional.ofNullable(null).isPresent());//输出false
System.out.println(Optional.ofNullable("1111").isPresent());//输出true

}

}