Java 使用 Supplier 提供一个默认值
示例
在正常的orElse方法有一个Object,所以你可能会问,为什么有一个选项提供了Supplier这里(该orElseGet法)。
考虑:
String value = "something"; return Optional.ofNullable(value) .orElse(getValueThatIsHardToCalculate()); // returns "something"
getValueThatIsHardToCalculate()即使未使用结果,它仍然会调用,因为可选参数不为空。
为了避免这种罚款,您可以向供应商提供:
String value = "something"; return Optional.ofNullable(value) .orElseGet(() -> getValueThatIsHardToCalculate()); // returns "something"
getValueThatIsHardToCalculate()如果的Optional值为空,则只会调用此方式。