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 相关文章推荐
分析ZooKeeper分布式锁的实现
Jun 30 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
Java中的随机数Random
Mar 17 Java/Android
SpringBoot中使用Redis作为全局锁示例过程
Mar 24 Java/Android
Netty分布式客户端处理接入事件handle源码解析
Mar 25 Java/Android
Java实战之课程信息管理系统的实现
Apr 01 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
Android存储中最基本的文件存储方式
Apr 30 Java/Android
多线程Spring通过@Scheduled实现定时任务
May 25 Java/Android
Java 多线程并发FutureTask
Jun 28 Java/Android
Spring Boot优化后启动速度快到飞起技巧示例
Jul 23 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
php 全文搜索和替换的实现代码
2008/07/29 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
JS判定是否原生方法
2013/07/22 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
js实现弹窗效果
2020/08/09 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
python3 flask实现文件上传功能
2020/03/20 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
英语系毕业生自荐信
2013/10/31 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
小学庆六一活动方案
2014/02/28 职场文书
秋天的雨教学反思
2014/04/27 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
个人廉洁自律总结
2015/03/06 职场文书
服务员岗位职责范本
2015/04/09 职场文书
病假条格式范文
2015/08/17 职场文书
《开国大典》教学反思
2016/02/16 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书