Optional类

容器类
—> 但是只能装一个value
—> 因此更多是检验一个元素是否存在于容器之中
由于null经常引起代码的出错,导致崩溃
所以java特意定义一个容器类以减少空指针报错,明确表示一个值的缺失

于是我们访问数据的时候不用每次特意去判断是否为null

而是通过一系列优雅的方法来访问值或者给定默认值。

1.创建方法 Optional.of()
和Stream一样有of方法创建Optional容器类

2.访问数据

直接 get() 为判断null,容易报错
IfPresent(lambda) 会自动判断null,非null则执行逻辑
orElse() 有则返回val, 否则 立即返回默认值
orElseGet(lambda [supplier]) 有则返回val,否则 执行lambda
OrElseThrow() 有则返回,否则抛出异常

3.使用场景
如果调用一个函数, 但是不确定是否有返回值
我们就可以用 Optional<T> 作为返回值类型

最大的作用就是防止空指针异常
image1