Java8新特性-Optional类:解决空指针异常

一、介绍

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

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

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

二、常见用法

Optional.ofNullable() - 允许传递为 null 参数

Optional.of() - 如果传递的参数是 null,抛出异常 NullPointerException

Optional.isPresent() - 判断值是否存在

Optional.orElse() - 如果值存在,返回它,否则返回默认值

Optional.get() - 获取值,值需要存在

注:

1.of方法对null对象没有做任何处理,ofNullable方法才做了处理。所以当我们不知道传入的对象是否为null的时候,我们应该选择用 ofNullable来做处理。

例:String name = Optional.ofNullable(person).map(x -> x.getName()) .orElse("unKnown");

person对象不知道是否存在name的值,如果getName无值,则用unknown代替。

2.orElse(T other)不论容器是否为空,只要调用该方法, 则对象other一定存在orElseGet(Supplier<? extends T> supplier)只有当容器为空时,才调用supplier.get()方法产生对象

当Optonal为空时,无论orElse还是orElseGet都会执行;当Optional有值时,orElse会执行,而orElseGet不会执行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容