JDK8新特性之Optional

Optional是什么
java.util.Optional

Jdk8提供 Optional,一个可以包含null值的容器对象,可以用来代替xx != null的判断。
最大化减少了空指针异常
Optional常用方法
of
在这里插入图片描述
为value创建一个Optional对象,如果value为空则 会报出NullPointerException异常。
ofNullable
在这里插入图片描述
为value创建一个Optional对象,但可以允许value为null值。
isPresent
在这里插入图片描述
判断当前value是否为null,如果不为null则返回true,否则false。

ifPresent
JDK8新特性之Optional_第1张图片

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

get
JDK8新特性之Optional_第2张图片
返回当前的值,如果为空则报异常。

orElse
在这里插入图片描述
返回当前值,如果为null则返回other。
orElseGet
在这里插入图片描述
orElseGet和orElse类似,只是orElseGet支持函数式接口来生成other值。
orElseThrow
JDK8新特性之Optional_第3张图片
如果有值则返回,没有则用函数式接口抛出生成的异常

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

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

你可能感兴趣的:(#,Java8新特性)