Java Optional<Foo>转换成List<Bar>的实例方法

 更新时间:2021年06月20日 11:16:59   作者:编程之路  
在本篇内容里小编给大家整理的是一篇关于Java Optional<Foo>转换成List<Bar>的实例方法,有需要的朋友们可以跟着学习下。

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>代码的资料请关注脚本之家其它相关文章!

相关文章

  • Spring详细讲解循环依赖是什么

    Spring详细讲解循环依赖是什么

    这篇文章主要介绍了Java中的Spring循环依赖详情,文章基于Java的相关资料展开详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • JavaWeb文件上传入门教程

    JavaWeb文件上传入门教程

    这篇文章主要为大家详细介绍了JavaWeb文件上传入门教程,分析了文件上传原理、介绍了第三方上传组件,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java进程内缓存框架EhCache详解

    Java进程内缓存框架EhCache详解

    这篇文章主要介绍了Java进程内缓存框架EhCache,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-12-12
  • Springboot 集成 lombok.jar过程解析

    Springboot 集成 lombok.jar过程解析

    这篇文章主要介绍了Springboot 集成 lombok.jar过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Spring @EventListener 异步中使用condition的问题及处理

    Spring @EventListener 异步中使用condition的问题及处理

    这篇文章主要介绍了Spring @EventListener 异步中使用condition的问题及处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 关于Sentinel中冷启动限流原理WarmUpController

    关于Sentinel中冷启动限流原理WarmUpController

    这篇文章主要介绍了关于Sentinel中冷启动限流原理WarmUpController,具有很好的参考价值,希望对大家有所帮助。
    2023-04-04
  • 解决SpringBoot使用yaml作为配置文件遇到的坑

    解决SpringBoot使用yaml作为配置文件遇到的坑

    这篇文章主要介绍了解决SpringBoot使用yaml作为配置文件遇到的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 在java poi导入Excel通用工具类示例详解

    在java poi导入Excel通用工具类示例详解

    这篇文章主要给大家介绍了关于在java poi导入Excel通用工具类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • SpringData整合ElasticSearch实现CRUD的示例代码(超详细)

    SpringData整合ElasticSearch实现CRUD的示例代码(超详细)

    本文主要介绍了SpringData整合ElasticSearch实现CRUD的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java网络编程实例——简单模拟在线聊天

    Java网络编程实例——简单模拟在线聊天

    学了java网络,也是该做个小案例来巩固一下了。本次案例将使用UDP和多线程模拟即时聊天,简单练练手。
    2021-05-05

最新评论