如果a是可选的[123]并且b是可选的[空]。
a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
"Error")))
为什么会抛出?
最佳答案
orElse()
是一个方法,在执行该方法之前,会评估其参数。在这种情况下,参数的计算 (b.orElseThrow(() -> new UnexpectedInternalException("Error"))
) 会引发异常。
关于Java 8可选的orElse或ElseThrow不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698211/