Optional.ifPresent(如果没有)

时间:2017-03-22 14:39:18

标签: java

我正在尝试根据方法返回的选项构建流程。

我的问题是:有没有办法构建一个流程,以便在获取例如AnyObject并在另一个案例中以一种不错的方式执行另一个流时分裂? (不是使用if else切换三元)

1 个答案:

答案 0 :(得分:3)

我认为您正在寻找的是orElseGet:

以下返回6:

Optional.of(5).map(value -> value + 1)
              .orElseGet(() -> 1);

这将返回1:

Optional.<Integer>empty().map(value -> value + 1)
                         .orElseGet(() -> 1)

orElseGet需要供应商,因此只要您返回一个值,就可以在那里执行任意代码。