如果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