如果我从orElse
调用函数,即使Optional不为空,也会执行该
函数.有没有办法限制
函数的执行只有当Optional为空时?
Optional.ofNullable(someValue).orElse(someFunction());
someFunction()被执行,因为它是传递给
方法的参数,传递给
方法的参数在执行
方法之前被计算.为了避免执行,您应该在Supplier实例中传递someFunction().
使用orElseGet
而不是orElse:
Optional.ofNullable(someValue).orElseGet(SomeClass::someFunction);
要么
Optional.ofNullable(someValue).orElseGet(()->someFunction());
原文链接:https://www.f2er.com/java/127415.html