【发布时间】:2019-03-05 22:41:21
【问题描述】:
我链接选项的方法的行为与我想象的不同 from reading the docs.
假设所有function_n都返回Optional<Foo>
public Foo getFooFromService() {
return this.function_1()
.or(this.function_2())
.or(this.function_3())
.or(DEFAULT_VAL)
我认为对于上面的代码,如果function_1 返回一个非缺失 Optional,那么程序将返回它的内部值(.get() 的结果)并且不对@987654326 做任何进一步的计算@和function_3
我的程序肯定会进行额外的计算
【问题讨论】:
-
提示:似乎有一个需要
Supplier的重载:如果存在,则返回包含的实例;否则供应商.get()。 -
@qqilihq 是的,我在回答中提到了它。我挑战你重写 OP 的 sn-p 以使用这种方法:)
标签: java guava optional chaining