📅  最后修改于: 2023-12-03 15:01:49.890000             🧑  作者: Mango
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()
方法的情况。