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实战之用Swing实现通讯录管理系统
Jun 13 Java/Android
springcloud之Feign超时问题的解决
Jun 24 Java/Android
java基础——多线程
Jul 03 Java/Android
mybatis中注解与xml配置的对应关系和对比分析
Aug 04 Java/Android
SpringMVC 整合SSM框架详解
Aug 30 Java/Android
spring cloud 配置中心客户端启动遇到的问题
Sep 25 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 Java/Android
springboot中的pom文件 project报错问题
Jan 18 Java/Android
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Apr 08 Java/Android
Java界面编程实现界面跳转
Jun 16 Java/Android
Spring中bean集合注入的方法详解
Jul 07 Java/Android
Spring boot admin 服务监控利器详解
Aug 05 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
thinkphp实现数组分页示例
2014/04/13 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
Gap工厂店:Gap Factory
2017/11/02 全球购物
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
中文系学生自荐信范文
2013/11/13 职场文书
办公室岗位职责
2014/02/12 职场文书
大学新学期计划书
2014/04/28 职场文书
国庆节标语大全
2014/10/08 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
开平碉楼导游词
2015/02/06 职场文书
匿名检举信范文
2015/03/02 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
JS数组方法some、every和find的使用详情
2021/10/05 Javascript