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 相关文章推荐
源码解读Spring-Integration执行过程
Jun 11 Java/Android
详解Java实践之建造者模式
Jun 18 Java/Android
Java各种比较对象的方式的对比总结
Jun 20 Java/Android
Java中常用解析工具jackson及fastjson的使用
Jun 28 Java/Android
Jackson 反序列化时实现大小写不敏感设置
Jun 29 Java/Android
Java使用jmeter进行压力测试
Jul 09 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
Spring-cloud Config Server的3种配置方式
Sep 25 Java/Android
Android Studio实现简易进制转换计算器
May 20 Java/Android
Java时间工具类Date的常用处理方法
May 25 Java/Android
Java中的Kotlin 内部类原理
Jun 16 Java/Android
java获取一个文本文件的编码(格式)信息
Sep 23 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
十天学会php之第八天
2006/10/09 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
JScript的条件编译
2007/05/29 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
python查看zip包中文件及大小的方法
2015/07/09 Python
浅析Python基础-流程控制
2016/03/18 Python
pycharm远程调试openstack代码
2017/11/21 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
任命书范本大全
2014/06/06 职场文书
门面房租房协议书
2014/12/01 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
JavaScript前端面试组合函数
2022/06/21 Javascript
JS高级程序设计之class继承重点详解
2022/07/07 Javascript
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android