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框架入门之简单介绍SpringBoot框架
Jun 18 Java/Android
基于Java的MathML转图片的方法(示例代码)
Jun 23 Java/Android
Spring boot应用启动后首次访问很慢的解决方案
Jun 23 Java/Android
Java中使用Filter过滤器的方法
Jun 28 Java/Android
Java并发编程必备之Future机制
Jun 30 Java/Android
java实现对Hadoop的操作
Jul 01 Java/Android
spring cloud gateway中如何读取请求参数
Jul 15 Java/Android
springboot+zookeeper实现分布式锁
Mar 21 Java/Android
Android 界面一键变灰 深色主题工具类
Apr 28 Java/Android
Springboot-cli 开发脚手架,权限认证,附demo演示
Apr 28 Java/Android
Android基础入门之dataBinding的简单使用教程
Jun 21 Java/Android
SpringBoot Http远程调用的方法
Aug 14 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
javascript如何创建对象
2016/08/29 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
python 随机数生成的代码的详细分析
2011/05/15 Python
Django开发中的日志输出的方法
2018/07/02 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
保密承诺书
2014/03/27 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
MySQL 视图(View)原理解析
2021/05/19 MySQL
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏
分享几个实用的CSS代码块
2022/06/10 HTML / CSS