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
springBoot基于webSocket实现扫码登录
Jun 22 Java/Android
分析设计模式之模板方法Java实现
Jun 23 Java/Android
Java数组与堆栈相关知识总结
Jun 29 Java/Android
SpringBoot整合JWT的入门指南
Jun 29 Java/Android
如何给HttpServletRequest增加消息头
Jun 30 Java/Android
springboot中rabbitmq实现消息可靠性机制详解
Sep 25 Java/Android
Spring Data JPA框架Repository自定义实现
Apr 28 Java/Android
利用正则表达式匹配浮点型数据
May 30 Java/Android
Mybatis-plus配置分页插件返回统一结果集
Jun 21 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 Java/Android
IDEA中sout快捷键无效问题的解决方法
Jul 23 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
PHP中对用户身份认证实现两种方法
2011/06/04 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
扩展String功能方法
2006/09/22 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
Python中字符串对齐方法介绍
2015/05/21 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
python爬虫中多线程的使用详解
2019/09/23 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
python pillow库的基础使用教程
2021/01/13 Python
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
最新会计专业求职信范文
2014/01/28 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
班主任开场白
2015/06/01 职场文书
环境卫生标语
2015/08/03 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
再谈python_tkinter弹出对话框创建
2022/03/20 Python
nginx日志格式分析和修改
2022/04/28 Servers