aがオプション[123]で、bがオプション[空]の場合。Java 8オプションorElseまたはElseThrowが矛盾します
a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
"Error")))
なぜそれはスローされますか?
aがオプション[123]で、bがオプション[空]の場合。Java 8オプションorElseまたはElseThrowが矛盾します
a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
"Error")))
なぜそれはスローされますか?
orElse()
がメソッドであり、そのメソッドが実行される前にその引数が評価されます。この場合、引数の評価(b.orElseThrow(() -> new UnexpectedInternalException("Error"))
)は例外をスローします。
完璧な意味合いがあります – Jor
それは何も投げません – Andrew
あなたは何をすることを期待しましたか? 'orElseThrow()'メソッドは、 'Optional'が存在しない場合にスローされるように設計されています... – fge