Java 8 可选orElse orElseThrow 不一致
Java 8 Optional orElse orElseThrow inconsistent
如果 a 是可选的[123] 并且 b 是可选的[空]。
a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
"Error")))
为什么会抛出?
因为首先评估参数。这与可选无关...
orElse()
是一种方法,在执行该方法之前,会评估其参数。在这种情况下,参数 (b.orElseThrow(() -> new UnexpectedInternalException("Error"))
) 的计算会引发异常。
如果 a 是可选的[123] 并且 b 是可选的[空]。
a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
"Error")))
为什么会抛出?
因为首先评估参数。这与可选无关...
orElse()
是一种方法,在执行该方法之前,会评估其参数。在这种情况下,参数 (b.orElseThrow(() -> new UnexpectedInternalException("Error"))
) 的计算会引发异常。