我正在尝试根据方法返回的选项构建流程。
我的问题是:有没有办法构建一个流程,以便在获取例如AnyObject
并在另一个案例中以一种不错的方式执行另一个流时分裂? (不是使用if else切换三元)
答案 0 :(得分:3)
我认为您正在寻找的是orElseGet:
以下返回6:
Optional.of(5).map(value -> value + 1)
.orElseGet(() -> 1);
这将返回1:
Optional.<Integer>empty().map(value -> value + 1)
.orElseGet(() -> 1)
orElseGet需要供应商,因此只要您返回一个值,就可以在那里执行任意代码。