Java Optional可以用于流量控制吗?

Ali*_*aka 7 java nullable optional java-8

我找不到使用Java的Optional执行以下操作的方法:

if (SOME_OBJECT != null) {
  doSomething(SOME_OBJECT);
} else {
  doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)

通过使用Optional,我的意思并不是指更换SOME_OBJECT == nullOptional.ofNullable(SOME_OBJECT).isPresent(),这比如果为null?只需勾选更长的语法.

我期望的是:

Optional.ofNullable(SOME_OBJECT)
  .ifPresent(this::doSomething)
  .orElse(this::doSomethingElse);
Run Code Online (Sandbox Code Playgroud)

我找不到像我刚写的那样的API.它存在吗?如果是这样,它是什么?如果没有,为什么不呢?:)

第二段代码看起来像一个反模式:(为什么?也许Java的架构师故意阻止这种语法......

Skg*_*and 8

正如本博客文章中提到的,Optionals将在Java 9中获得一个新的Methode,void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction);因此在Java 8中你目前没有这样的东西.