map和flatMap的区别

网友投稿 643 2022-10-17

map和flatMap的区别

map和flatMap的区别

转自:

​​类简介:

Java8 新增了非常多的特性,而Optional 类就是其中一个新增的类

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

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

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

下文笔者讲述Optional类中map和flatMap的区别说明,如下所示

map和flatMap的区别 map方法:接受一个映射函数参数,返回一个被Optional包装的结果。若结果为空,则返回 空Optional flatMap方法:接受一个返回值为Optional的映射函数参数,该返回值亦是flatMap方法的返回值 若结果为空,则返回 空Optional。

public class User { String name; Integer age; public User(){ } public User(String name, Integer age){ this.name = name; this.age = age; } ... // getter setter } @Test void mapOptionalTest(){ User user = new User("java265.com",88); Optional> optionalOptional = Optional.ofNullable(user).map(this::getName); Optional mapOptional = Optional.ofNullable(user).map(s -> s.getName()); Optional flatOptional = Optional.ofNullable(user).flatMap(this::getName); } private Optional getName(User user){ return Optional.ofNullable(user).map(s -> s.getName()); }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:光场(Light Field) 视频应用程序
下一篇:Netty组件NioEventLoopGroup创建线程执行器源码解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~