1.构造Optional类对象的三种方法:https://www.jianshu.com/p/82ed16613072
Optional.ofNullable(T value),该方法和 of 方法的区别在于,传入的参数可以为 null —— 但是前面 javadoc 不是说 Optional 只能包含非 null 值吗?我们可以看看 ofNullable 方法的源码:

1、ifPresent
如果 Optional 中有值,则对该值调用 consumer.accept,否则什么也不做。
所以对于上面的例子,我们可以修改为:
2、orElse
如果 Optional 中有值则将其返回,否则返回 orElse 方法传入的参数。
3、orElseGet
orElseGet 与 orElse 方法的区别在于,orElseGet 方法传入的参数为一个 Supplier 接口的实现 —— 当 Optional 中有值的时候,返回值;当 Optional 中没有值的时候,返回从该 Supplier 获得的值。
4、map
如果当前 Optional 为 Optional.empty,则依旧返回 Optional.empty;否则返回一个新的 Optional,该 Optional 包含的是:函数 mapper 在以 value 作为输入时的输出值。
5、filter
filter 方法接受一个 Predicate 来对 Optional 中包含的值进行过滤,如果包含的值满足条件,那么还是返回这个 Optional;否则返回 Optional.empty。
博客介绍了构造Optional类对象的方法链接,还阐述了Optional类的多个方法。如ifPresent,有值则调用函数;orElse,有值返回值,无值返回传入参数;orElseGet,无值时从Supplier获得值;map和filter也各有其功能。
5837

被折叠的 条评论
为什么被折叠?



