我试图通过使用Java Optional来避免传统的if / else阻塞。 但是我仍然缺少对如何实现下一个要求的理解:
if (x != null)
foo1();
else
foo2();
public void foo1(){
print("X not null");
}
public void foo2(){
print("X is null");
}
谢谢
答案 0 :(得分:7)
在jdk-9中,您可以使用ifPresentOrElse
public void ifPresentOrElse(Consumer<? super T> action,
Runnable emptyAction)
代码
Optional.ofNullable(x).ifPresentOrElse(x->foo1(), ()->foo2());
答案 1 :(得分:2)
我正在尝试避免传统的
if / else
阻止
就是这个问题。没有理由重写您提供给Optional
的代码段。您将不会从中受益。
if-else
是一个控制流语句,而Optional
是一个实用程序that indicates the absence of a return value,具有许多类似于函数的方法来很好地处理它。
如果您正在寻找快捷方式,或更精确的表达方式,请使用三元运算符。
print(x != null ? "X not null" : "X is null");
否则,保持原样。您总是可以找到一些更有趣的东西。