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

相关文章

  • SpringCloud微服务中跨域配置的方法详解

    SpringCloud微服务中跨域配置的方法详解

    在使用SpringCloud实现微服务时,经常会碰到前端页面访问多个二级域名的情况,跨域是首先要解决的问题。解决这个问题,可以从两方面入手,一种方案是在微服务各自的业务模块中实现,即在SpringBoot层实现,另外一种方案就是在Gateway层实现
    2023-02-02
  • spring boot使用@Async注解解决异步多线程入库的问题

    spring boot使用@Async注解解决异步多线程入库的问题

    最近在写项目是需要添加异步操作来提高效率,所以下面这篇文章主要给大家介绍了关于spring boot使用@Async注解解决异步多线程入库问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • MyBatis实现数据库类型和Java类型的转换

    MyBatis实现数据库类型和Java类型的转换

    MyBatis 在处理数据库查询结果或传递参数时,需要将数据库类型与 Java 类型之间进行转换,本文就给大家介绍MyBatis如何实现数据库类型和 Java 类型的转换的,需要的朋友可以参考下
    2024-09-09
  • Java实现购物管理系统

    Java实现购物管理系统

    这篇文章主要为大家详细介绍了Java实现购物管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 深入解析Java的Servlet过滤器的原理及其应用

    深入解析Java的Servlet过滤器的原理及其应用

    这篇文章主要介绍了深入解析Java的Servlet过滤器的原理及应用,Java编写的Servlet通常是一个与网页一起作用于浏览器客户端的程序,需要的朋友可以参考下
    2016-01-01
  • IISExpress 配置允许外部访问详细介绍

    IISExpress 配置允许外部访问详细介绍

    这篇文章主要介绍了 IISExpress 配置允许外部访问详细介绍的相关资料,需要的朋友可以参考下
    2016-11-11
  • Springboot整合Netty自定义协议实现示例详解

    Springboot整合Netty自定义协议实现示例详解

    这篇文章主要为大家介绍了Springboot整合Netty自定义协议实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • java自带的四种线程池实例详解

    java自带的四种线程池实例详解

    java线程的创建非常昂贵,需要JVM和OS(操作系统)互相配合完成大量的工作,下面这篇文章主要给大家介绍了关于java自带的四种线程池的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • SpringBoot 多数据源及事务解决方案小结

    SpringBoot 多数据源及事务解决方案小结

    本文主要介绍了多数据源管理的解决方案(应用层事务,而非XA二段提交保证),以及对多个库同时操作的事务管理,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • java调用文心一言API的方法实现过程

    java调用文心一言API的方法实现过程

    Java是一种广泛使用的编程语言,用于开发各种应用程序,下面这篇文章主要给大家介绍了关于java调用文心一言API的方法实现,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12

最新评论