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 14 Java/Android
java Nio使用NioSocket客户端与服务端交互实现方式
Jun 15 Java/Android
IDEA使用SpringAssistant插件创建SpringCloud项目
Jun 23 Java/Android
swagger如何返回map字段注释
Jul 03 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
Netty分布式客户端处理接入事件handle源码解析
Mar 25 Java/Android
Android超详细讲解组件ScrollView的使用
Mar 31 Java/Android
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Apr 08 Java/Android
JavaWeb Servlet开发注册页面实例
Apr 11 Java/Android
Java Spring Lifecycle的使用
May 06 Java/Android
Android studio 简单计算器的编写
May 20 Java/Android
springcloud整合seata
May 20 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
使用prototype.js进行异步操作
2007/02/07 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
python+pygame实现坦克大战
2019/09/10 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
美国最大点评网站:Yelp
2018/02/14 全球购物
学生感冒英文请假条
2014/02/04 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
个人廉政承诺书
2015/04/28 职场文书
尼克胡哲观后感
2015/06/08 职场文书
党员读书活动心得体会
2016/01/14 职场文书
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android