JDK8新特性之Optional

Optional是什么
java.util.Optional

Jdk8提供 Optional,一个可以包含null值的容器对象,可以用来代替xx != null的判断。

Optional常用方法
of
JDK8新特性之Optional
为value创建一个Optional对象,如果value为空则 会报出NullPointerException异常。
ofNullable
JDK8新特性之Optional
为value创建一个Optional对象,但可以允许value为null值。
isPresent
JDK8新特性之Optional
判断当前value是否为null,如果不为null则返回true,否则false。

ifPresent
JDK8新特性之Optional

如果不为null值就执行函数式接口的内容。

get
JDK8新特性之Optional
返回当前的值,如果为空则报异常。

orElse
JDK8新特性之Optional
返回当前值,如果为null则返回other。
orElseGet
JDK8新特性之Optional
orElseGet和orElse类似,只是orElseGet支持函数式接口来生成other值。
orElseThrow
JDK8新特性之Optional
如果有值则返回,没有则用函数式接口抛出生成的异常

示例:
JDK8新特性之Optional
JDK8新特性之Optional
Optional在jdk8中有大量使用,比如像Stream流中,但 Optional用在null判断感觉也没什么用。。

在Spring4中也可以用Optional来代替autowired(require=false)的情况。