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 Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
java中重写父类方法加不加@Override详解
Jun 21 Java/Android
Java生成读取条形码和二维码的简单示例
Jul 09 Java/Android
springboot集成springCloud中gateway时启动报错的解决
Jul 16 Java/Android
SpringBoot SpringEL表达式的使用
Jul 25 Java/Android
Java中CyclicBarrier和CountDownLatch的用法与区别
Aug 23 Java/Android
Java spring单点登录系统
Sep 04 Java/Android
使用HttpSessionListener监听器实战
Mar 17 Java/Android
关于EntityWrapper的in用法
Mar 22 Java/Android
Java的Object类的九种方法
Apr 13 Java/Android
Spring Security动态权限的实现方法详解
Jun 16 Java/Android
SpringBoot深入分析讲解监听器模式下
Jul 15 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
php 过滤危险html代码
2009/06/29 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
python先序遍历二叉树问题
2017/11/10 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python日志模块logging基本用法分析
2018/08/23 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Python绘制数码晶体管日期
2021/02/19 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
小学生自我鉴定
2013/10/12 职场文书
食堂员工工作职责
2013/12/18 职场文书
国际贸易专业求职信
2014/06/04 职场文书
员工表扬信怎么写
2015/05/05 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
2016教师节问候语
2015/11/10 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书