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 相关文章推荐
JVM入门之类加载与字节码技术(类加载与类的加载器)
Jun 15 Java/Android
Java用自带的Image IO给图片添加水印
Jun 15 Java/Android
springboot集成flyway自动创表的详细配置
Jun 26 Java/Android
利用Java设置Word文本框中的文字旋转方向的实现方法
Jun 28 Java/Android
Springboot使用Spring Data JPA实现数据库操作
Jun 30 Java/Android
关于springboot 配置date字段返回时间戳的问题
Jul 25 Java/Android
java如何实现socket连接方法封装
Sep 25 Java/Android
Java如何实现通过键盘输入一个数组
Feb 15 Java/Android
JVM的类加载器和双亲委派模式你了解吗
Mar 13 Java/Android
剑指Offer之Java算法习题精讲二叉树的构造和遍历
Mar 21 Java/Android
Java存储没有重复元素的数组
Apr 29 Java/Android
Java时间工具类Date的常用处理方法
May 25 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
中英文字符串翻转函数
2008/12/09 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
php实现MySQL数据库备份与还原类实例
2014/12/09 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
python的unittest测试类代码实例
2017/12/07 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
Flask-WTF表单的使用方法
2019/07/12 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
python实现统计代码行数的小工具
2019/09/19 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
高中英语演讲稿范文
2014/04/24 职场文书
10的分与合教学反思
2014/04/30 职场文书
中华魂演讲稿
2014/05/13 职场文书
法律顾问服务方案
2014/05/15 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
入伍通知书
2015/04/23 职场文书
小学教研工作总结2015
2015/05/13 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Nginx反向代理配置的全过程记录
2021/06/22 Servers
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android