假设所有function_n返回Optional<Foo>
public Foo getFooFromService() {
return this.function_1()
.or(this.function_2())
.or(this.function_3())
.or(DEFAULT_VAL)
Run Code Online (Sandbox Code Playgroud)
我以为对于上面的代码,如果function_1返回一个不存在的Optional,则程序将返回它的内部值(.get()的结果),并且不会在function_2和上进行任何进一步的计算。function_3
我的程序肯定会做额外的计算