如果a是可选的[123]并且b是可选的[空白]。Java 8可选的orElse orElseThrow不一致
a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
"Error")))
它为什么扔?
如果a是可选的[123]并且b是可选的[空白]。Java 8可选的orElse orElseThrow不一致
a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
"Error")))
它为什么扔?
orElse()
是一种方法,在执行该方法之前,将对其参数进行评估。在这种情况下,参数的评估(b.orElseThrow(() -> new UnexpectedInternalException("Error"))
)会引发异常。
完美无缺 – Jor
它什么都没抛出 – Andrew
你期望它做什么? 'orElseThrow()'方法的设计是为了抛出如果你的'Optional'缺失... – fge