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中重写父类方法加不加@Override详解
Jun 21 Java/Android
图解排序算法之希尔排序Java实现
Jun 26 Java/Android
详解Spring事件发布与监听机制
Jun 30 Java/Android
使用Springboot实现健身房管理系统
Jul 01 Java/Android
Java Socket实现多人聊天系统
Jul 15 Java/Android
SpringBoot+VUE实现数据表格的实战
Aug 02 Java/Android
浅谈Java父子类加载顺序
Aug 04 Java/Android
浅谈sql_@SelectProvider及使用注意说明
Aug 04 Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 Java/Android
Flutter Navigator 实现路由传递参数
Apr 22 Java/Android
Java服务调用RestTemplate与HttpClient的使用详解
Jun 21 Java/Android
httpclient调用远程接口的方法
Aug 14 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
yii实现级联下拉菜单的方法
2014/07/31 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
Python读写unicode文件的方法
2015/07/10 Python
详解python多线程之间的同步(一)
2019/04/03 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
四年的大学生生活自我评价
2013/12/09 职场文书
代理班主任的自我评价
2014/02/04 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
Mysql 用户权限管理实现
2021/05/25 MySQL
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js