博客
关于我
Java8 | Optional类
阅读量:126 次
发布时间:2019-02-26

本文共 2213 字,大约阅读时间需要 7 分钟。

Java Optional类详解

Optional类是一个容器类,用于表示一个值的存在或不存在。它通过替代传统的null值,提供了更安全和直观的方式来处理缺失值。在Java编程中,尤其是在处理可选值时,Optional类是一个非常有用的工具。

创建Optional类对象

Optional类提供了三种主要的创建方式:

  • of(T t):创建一个包含非空值的Optional实例。调用该方法时,参数t必须非null,否则会抛出NullPointerException。
  • empty():创建一个空的Optional实例。
  • ofNullable(T t):创建一个可能包含值的Optional实例,参数t可以是null。
  • 以下是一个使用of方法创建Optional实例的示例:

    Girl girl = new Girl();Optional girlOptional = Optional.of(girl);System.out.println(girlOptional);

    以下是一个使用empty方法创建空Optional实例的示例:

    Optional emptyOptional = Optional.empty();System.out.println(emptyOptional); 以下是一个使用ofNullable方法创建Optional实例的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);System.out.println(girlOptional); 判断Optional容器中是否包含对象 可以通过以下方法判断Optional容器中是否包含值: isPresent():返回true,表示Optional容器中包含一个值;返回false,表示容器为空。 ifPresent(Consumer
    consumer):如果Optional容器中有值,则执行Consumer接口的实现方法;如果没有值,则不执行。 以下是一个使用isPresent方法判断值是否存在的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);boolean present = girlOptional.isPresent();System.out.println(present); 以下是一个使用ifPresent方法执行回调逻辑的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);girlOptional.ifPresent(g -> System.out.println("女孩存在"));// 如果女孩不存在,不会执行上述代码 获取Optional容器的对象 如果Optional容器中包含值,可以通过以下方法获取值: get():返回Optional容器中的值。如果容器为空,则抛出NoSuchElementException异常。 orElse(T other):如果Optional容器中有值,则返回该值;如果没有值,则返回参数other。 orElseGet(Supplier
    supplier):如果Optional容器中有值,则返回该值;如果没有值,则调用supplier提供一个替代值。 orElseThrow(Supplier
    supplier):如果Optional容器中有值,则返回该值;如果没有值,则抛出由supplier提供的异常。 以下是一个使用orElse方法获取替代值的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);Girl girlOrElse = girlOptional.orElse(new Girl("替代值"));System.out.println(girlOrElse); 以下是一个使用orElseGet方法获取替代值的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);Girl girlOrElseGet = girlOptional.orElseGet(() -> new Girl("替代值"));System.out.println(girlOrElseGet); 以下是一个使用orElseThrow方法抛出异常的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);try { Girl girlOrElseThrow = girlOptional.orElseThrow(() -> new RuntimeException("值不存在")); System.out.println(girlOrElseThrow);} catch (RuntimeException e) { System.out.println("抛出了异常:" + e.getMessage());}

    转载地址:http://ffuy.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现harris算法(附完整源码)
    查看>>
    Objective-C实现haversine distance斜距算法(附完整源码)
    查看>>
    Objective-C实现highest response ratio next高响应比优先调度算法(附完整源码)
    查看>>
    Objective-C实现hill climbing爬山法用来寻找函数的最大值算法(附完整源码)
    查看>>
    Objective-C实现hornerMethod霍纳法算法(附完整源码)
    查看>>
    Objective-C实现Http Post请求(附完整源码)
    查看>>
    Objective-C实现Http协议下载文件(附完整源码)
    查看>>
    Objective-C实现ID3贪心算法(附完整源码)
    查看>>
    Objective-C实现IIR 滤波器算法(附完整源码)
    查看>>
    Objective-C实现IIR数字滤波器(附完整源码)
    查看>>
    Objective-C实现insertion sort插入排序算法(附完整源码)
    查看>>
    Objective-C实现integer partition整数分区算法(附完整源码)
    查看>>
    Objective-C实现integerPartition整数划分算法(附完整源码)
    查看>>
    Objective-C实现interpolation search插值搜索算法(附完整源码)
    查看>>
    Objective-C实现Interpolation search插值查找算法(附完整源码)
    查看>>
    Objective-C实现intersection交集算法(附完整源码)
    查看>>
    Objective-C实现intro sort内省排序算法(附完整源码)
    查看>>
    Objective-C实现inversions倒置算法(附完整源码)
    查看>>
    Objective-C实现isalpha函数功能(附完整源码)
    查看>>
    Objective-C实现islower函数功能(附完整源码)
    查看>>