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 相关文章推荐
深入理解以DEBUG方式线程的底层运行原理
Jun 21 Java/Android
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
Jun 21 Java/Android
如何给HttpServletRequest增加消息头
Jun 30 Java/Android
Java实现聊天机器人完善版
Jul 04 Java/Android
看完这篇文章获得一些java if优化技巧
Jul 15 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
Java异常处理try catch的基本用法
Dec 06 Java/Android
解决persistence.xml配置文件修改存放路径的问题
Feb 24 Java/Android
Java 数据结构七大排序使用分析
Apr 02 Java/Android
Spring Boot配合PageHelper优化大表查询数据分页
Apr 20 Java/Android
Spring Data JPA框架的核心概念和Repository接口
Apr 28 Java/Android
Java Spring读取和存储详细操作
Aug 05 Java/Android
详解Java实践之适配器模式
Java数据结构之链表相关知识总结
详解Java实践之抽象工厂模式
Java框架入门之简单介绍SpringBoot框架
详解Java实践之建造者模式
新手入门Jvm-- JVM对象创建与内存分配机制
springboot利用redis、Redisson处理并发问题的操作
You might like
PHP使用CURL模拟登录的方法
2015/07/08 PHP
php基本函数汇总
2015/07/09 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
JS中表单的使用小结
2014/01/11 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
企业厂长岗位职责
2013/12/17 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
技术入股合作协议书
2014/10/07 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
人与自然的观后感
2015/06/18 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python