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 相关文章推荐
分享一些Java的常用工具
Jun 11 Java/Android
Java实现多文件上传功能
Jun 30 Java/Android
SpringBoot集成Druid连接池连接MySQL8.0.11
Jul 02 Java/Android
关于springboot 配置date字段返回时间戳的问题
Jul 25 Java/Android
Java日常练习题,每天进步一点点(38)
Jul 26 Java/Android
Java获取e.printStackTrace()打印的信息方式
Aug 07 Java/Android
SpringBoot实现quartz定时任务可视化管理功能
Aug 30 Java/Android
Java 多态分析
Apr 26 Java/Android
解决spring.thymeleaf.cache=false不起作用的问题
Jun 10 Java/Android
Android开发手册自定义Switch开关按钮控件
Jun 10 Java/Android
Android开发EditText禁止输入监听及InputFilter字符过滤
Jun 10 Java/Android
Java服务调用RestTemplate与HttpClient的使用详解
Jun 21 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
document.compatMode介绍
2009/05/21 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Python 获取项目根路径的代码
2019/09/27 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
Python 如何测试文件是否存在
2020/07/31 Python
Python排序函数的使用方法详解
2020/12/11 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
MYSQL支持事务吗
2013/08/09 面试题
火车的故事教学反思
2014/02/11 职场文书
求职自我评价怎么写
2015/03/09 职场文书
雾霾停课通知
2015/04/24 职场文书
村主任当选感言
2015/08/01 职场文书
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技
利用Apache Common将java对象池化的问题
2022/06/16 Servers