
在Java 9版本中,引入了Optional.ifPresentOrElse()和Optional.or()方法来改进其功能。 Optional.ifPresentOrElse()方法检查值是否存在,如果存在则应用具有值的操作,否则返回空操作,而Optional.or()方法检查值是否存在,如果存在则返回包含值的选项,否则返回应用于Supplier函数的Optional。 Optional.ifPresentOrElse()方法包含两个参数,Consumer和Runnable,而Optional.or()方法只包含一个参数,Supplier。
<strong>public void ifPresentOrElse(Consumer<? super T><!--? super T--> action, Runnable emptyAction)</strong>
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
public class IfPresentOrElseMethodTest {
public static void main(String args[]) {
optionalIsPresent();
optionalIsEmpty();
}
private static void optionalIsPresent() {
<strong>Optional<String></strong> optional = <strong>Optional.of</strong>("Test");
AtomicInteger successCounter = new AtomicInteger();
AtomicInteger emptyOptionalsCounter = new AtomicInteger();
optional.<strong>ifPresentOrElse</strong>(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet());
System.out.println(successCounter.get());
System.out.println(emptyOptionalsCounter.get());
}
private static void optionalIsEmpty() {
Optional optional = <strong>Optional.empty()</strong>;
AtomicInteger successCounter = new AtomicInteger();
AtomicInteger emptyOptionalsCounter = new AtomicInteger();
optional.<strong>ifPresentOrElse</strong>(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet());
System.out.println(successCounter.get());
System.out.println(emptyOptionalsCounter.get())
}
}<strong>1 0 0 1</strong>
<strong>public Optional<T> or(Supplier<? extends Optional<? extends T<!--? extends Optional<? extends T-->>> supplier)</strong>
import java.util.Optional;
public class OptionalOrMethodTest {
public static void main(String args[]) {
optionalIsPresent();
optionalIsEmpty();
}
private static void optionalIsPresent() {
<strong>Optional<String></strong> optional1 = <strong>Optional.of</strong>("Test1");
<strong>Optional<String></strong> optional2 = <strong>Optional.of</strong>("Test2");
<strong>Optional<String</strong><strong>></strong> optional3 = <strong>optional1.or</strong>(() -> optional2);
System.out.println(optional3.get());
}
private static void optionalIsEmpty() {
<strong>Optional<String></strong> optional1 = <strong>Optional.empty()</strong>;
<strong>Optional<String></strong> optional2 = <strong>Optional.of</strong>("Test2");
<strong>Optional<String></strong> optional3 = <strong>optional1.or</strong>(() -> optional2);
System.out.println(optional3.get());
}
}<strong>Test1 Test2</strong>
以上就是Java 9中Optional.ifPresentOrElse()和Optional.or()方法之间的区别是什么?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号