📜  Java中可选的 ifPresentOrElse() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:01:49.890000             🧑  作者: Mango

Java中可选的 ifPresentOrElse() 方法和示例

介绍

Java 9中引入了一个新的方法 ifPresentOrElse(),它是 Optional 类的方法之一。这个新方法允许我们在 Optional 对象有值和为空时执行不同的操作。

语法

下面是 ifPresentOrElse() 方法的语法:

public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
参数
  • action – 对于具有值的Optional对象执行的操作
  • emptyAction – 对于空的Optional对象执行的操作
返回值

此方法没有返回值。

示例

下面是一个简单的示例说明如何使用 ifPresentOrElse() 方法。

import java.util.Optional;

public class Example {
    public static void main(String[] args) {
        Optional<String> optional = Optional.of("Hello World");

        optional.ifPresentOrElse(
                System.out::println,
                () -> System.out.println("Value not present")
        );
    }
}

结果将是:

Hello World

在上面的示例中,我们首先创建了一个包含字符串“Hello World”的 Optional 对象。然后,我们使用 ifPresentOrElse() 方法对其进行操作。由于 Optional 对象有值,所以会输出字符串“Hello World”。

现在我们将示例更改为使 Optional 对象为空:

import java.util.Optional;

public class Example {
    public static void main(String[] args) {
        Optional<String> optional = Optional.empty();

        optional.ifPresentOrElse(
                System.out::println,
                () -> System.out.println("Value not present")
        );
    }
}

结果将是:

Value not present

在上面的示例中,我们将 Optional 对象设置为空。由于 Optional 对象为空,在调用 ifPresentOrElse() 方法时,将执行 emptyAction 参数的操作,即打印字符串“Value not present”。

总结

ifPresentOrElse() 方法为我们提供了一种处理具有值和不具有值的 Optional 对象的简单方法。此方法可以代替使用 ifPresent()orElse() 方法的情况。