if/else 的可选方式
Optional way of if / else
我试图通过使用 Java 可选来避免传统的 if / else 块。
但是我仍然缺少对如何实现下一个要求的理解:
if (x != null)
foo1();
else
foo2();
public void foo1(){
print("X not null");
}
public void foo2(){
print("X is null");
}
谢谢
从 jdk-9 开始,您可以使用 ifPresentOrElse
public void ifPresentOrElse(Consumer<? super T> action,
Runnable emptyAction)
代码
Optional.ofNullable(x).ifPresentOrElse(x->foo1(), ()->foo2());
I'm trying to avoid the traditional if / else
block
这就是问题所在。没有理由重写您提供给 Optional
的片段。您不会以任何方式从中受益。
if-else
是一个控制流语句,而 Optional
是一个 util that indicates the absence of a return value 有一堆类似函数的方法可以很好地处理它。
如果您正在寻找快捷方式或更精确的表达方式,请使用三元运算符。
print(x != null ? "X not null" : "X is null");
否则,保持原样。你总能找到更有趣的东西来玩。
我试图通过使用 Java 可选来避免传统的 if / else 块。 但是我仍然缺少对如何实现下一个要求的理解:
if (x != null)
foo1();
else
foo2();
public void foo1(){
print("X not null");
}
public void foo2(){
print("X is null");
}
谢谢
从 jdk-9 开始,您可以使用 ifPresentOrElse
public void ifPresentOrElse(Consumer<? super T> action,
Runnable emptyAction)
代码
Optional.ofNullable(x).ifPresentOrElse(x->foo1(), ()->foo2());
I'm trying to avoid the traditional
if / else
block
这就是问题所在。没有理由重写您提供给 Optional
的片段。您不会以任何方式从中受益。
if-else
是一个控制流语句,而 Optional
是一个 util that indicates the absence of a return value 有一堆类似函数的方法可以很好地处理它。
如果您正在寻找快捷方式或更精确的表达方式,请使用三元运算符。
print(x != null ? "X not null" : "X is null");
否则,保持原样。你总能找到更有趣的东西来玩。