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 相关文章推荐
Win10系统下配置Java环境变量
Jun 13 Java/Android
Java并发编程之详解CyclicBarrier线程同步
Jun 23 Java/Android
IDEA使用SpringAssistant插件创建SpringCloud项目
Jun 23 Java/Android
分析并发编程之LongAdder原理
Jun 29 Java/Android
gateway网关接口请求的校验方式
Jul 15 Java/Android
浅谈Java父子类加载顺序
Aug 04 Java/Android
Java面试题冲刺第十九天--数据库(4)
Aug 07 Java/Android
Spring Cloud 中@FeignClient注解中的contextId属性详解
Sep 25 Java/Android
Android自定义双向滑动控件
Apr 19 Java/Android
springboot为异步任务规划自定义线程池的实现
Jun 14 Java/Android
Java实现注册登录跳转
Jun 16 Java/Android
Spring Boot实现文件上传下载
Aug 14 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
php微信开发自定义菜单
2016/08/27 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
jquery tools 系列 scrollable学习
2009/09/06 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
python中字典(Dictionary)用法实例详解
2015/05/30 Python
Python每天必学之bytes字节
2016/01/28 Python
python 网络爬虫初级实现代码
2016/02/27 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
详解python如何引用包package
2020/06/07 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
servlet面试题
2012/08/20 面试题
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
作风大整顿心得体会
2014/09/10 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书