Java Optional<Foo>转换成List<Bar>的实例方法


Posted in Java/Android onJune 20, 2021

1、转换方法代码

public List<Bar> get(Optional<Foo> foo) {
     return foo.map(x -> x.getBazList()
                          .stream()
                          .map(Baz::getBar)
                          .collect(Collectors.toList()))
               .orElse(Collections.emptyList());
}

public List<Bar> get(Optional<Foo> foo) {
         return foo.map(Foo::getBazList)
                   .stream()
                   .flatMap(Collection::stream)
                   .map(Baz::getBar)
                   .collect(Collectors.toList());
}

2、Optional类方法

1)empty()

返回空的 Optional 实例。

2)equals(Object obj)

判断其他对象是否等于 Optional。

3)filter(function)

如果值存在,并且这个值经过方法返回true,返回一个Optional用以描述这个值,否则返回一个空的Optional。

4)flatMap(function)

如果值存在,返回经过函数加工的Optional类,否则返回一个空的Optional

5)get()

如果在这个Optional中包含这个值,返回值,否则抛出异常:NoSuchElementException

6)hashCode()

返回存在值的哈希码,如果值不存在 返回 0。

7)ifPresent(function)

如果值存在则使用该值调用 consumer , 否则不做任何事情。

8)isPresent()

如果值存在则方法会返回true,否则返回 false。

9)map(function)

如果有值,则对其执行调用映射函数得到返回值。如果返回值不为 null,则创建包含映射返回值的Optional作为map方法返回值,否则返回空Optional。

10)static of(value)

返回一个指定非null值的Optional。

11)static ofNullable(value)

如果为非空,返回 Optional 描述的指定值,否则返回空的 Optional。

12)orElse(other)

如果存在该值,返回值, 否则返回 other。

13)orElseGet(function)

如果存在该值,返回值, 否则触发 方法,并返回方法调用的结果。

14)orElseThrow(function)

如果存在该值,返回包含的值,否则抛出方法指定的异常

15)toString()

返回一个Optional的非空字符串

以上就是Java Optional<Foo>转换成List<Bar>的实例方法的详细内容,更多关于Java Optional<Foo>转换成List<Bar>代码的资料请关注三水点靠木其它相关文章!

Java/Android 相关文章推荐
如何解决springcloud feign 首次调用100%失败的问题
Jun 23 Java/Android
springboot拦截器无法注入redisTemplate的解决方法
Jun 27 Java/Android
Java并发编程必备之Future机制
Jun 30 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
Sep 25 Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
Jan 18 Java/Android
Spring Bean是如何初始化的详解
Mar 22 Java/Android
Java8利用Stream对列表进行去除重复的方法详解
Apr 14 Java/Android
Spring JPA 增加字段执行异常问题及解决
Jun 10 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
maven 解包依赖项中的文件的解决方法
Jul 15 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
php 无极分类(递归)实现代码
2010/01/05 PHP
关于PHP的curl开启问题探讨
2014/04/08 PHP
php给数组赋值的实例方法
2019/09/26 PHP
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
详解爬虫被封的问题
2019/04/23 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
业务经理的岗位职责
2013/11/16 职场文书
幼儿园教师培训制度
2014/01/16 职场文书
运动会方队口号
2014/06/07 职场文书
教师个人自我评价
2015/03/04 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
python缺失值填充方法示例代码
2022/12/24 Python