Java Optional 的 ifPresentOrElse 方法详解

发布时间:2023年12月29日

Java Optional 的 ifPresentOrElse 方法详解

ifPresentOrElse 方法是 Java 9 中 Optional 类新增的方法之一。它提供了一种更为优雅和清晰的方式,用于在 Optional 对象包含值和不包含值的情况下执行不同的操作。本文将深入解析 ifPresentOrElse 方法,介绍其用法和示例。

方法签名

void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction);

参数说明

  • action:一个消费者函数,用于处理 Optional 对象中的值。
  • emptyAction:一个无参的操作,当 Optional 对象不包含值时执行。

方法行为

  • 如果 Optional 对象包含值,执行 action 操作。
  • 如果 Optional 对象不包含值,执行 emptyAction 操作。

示例用法

Optional<String> optionalValue = Optional.of("Hello, World!");

// Case 1: Optional 包含值
optionalValue.ifPresentOrElse(
    value -> System.out.println("Value is present: " + value),
    () -> System.out.println("Value is not present")
);

// Case 2: Optional 不包含值
Optional<String> emptyOptional = Optional.empty();
emptyOptional.ifPresentOrElse(
    value -> System.out.println("Value is present: " + value),
    () -> System.out.println("Value is not present")
);

解释和逻辑梳理

在上述示例中:

  1. 对于 optionalValueifPresentOrElse 方法的第一个参数是一个消费者函数,用于处理 Optional 包含的值。由于 optionalValue 包含值,因此会执行第一个参数,打印输出 “Value is present: Hello, World!”。
  2. 对于 emptyOptionalifPresentOrElse 方法的第二个参数是一个无参操作,用于处理 Optional 不包含值的情况。由于 emptyOptional 不包含值,因此会执行第二个参数,打印输出 “Value is not present”。

注意事项

  • ifPresentOrElse 方法可以帮助我们在处理 Optional 对象时更加简洁地区分是否包含值,避免了使用 isPresent() 方法。
  • 此方法是在 Java 9 中引入的,因此需要确保项目的 Java 版本支持。

通过使用 ifPresentOrElse 方法,我们能够更清晰地表达对 Optional 对象是否包含值的处理逻辑,提高代码的可读性。在编写更现代化的 Java 代码时,这个方法是一个很好的选择。

文章来源:https://blog.csdn.net/cxkjntm123/article/details/135247296
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。