Optional.ofNullable ではなく Optional.of を使用する理由は何ですか? 質問する

Optional.ofNullable ではなく Optional.of を使用する理由は何ですか? 質問する

Java 8Optionalクラスを使用する場合、値をオプションでラップする方法は 2 つあります。

String foobar = <value or null>;
Optional.of(foobar);         // May throw NullPointerException
Optional.ofNullable(foobar); // Safe from NullPointerException

Optional.ofNullableが唯一の安全な使用方法であることは理解していますOptionalが、Optional.ofそもそも が存在するのはなぜでしょうか? 常に を使用しOptional.ofNullable、安全を期さないのはなぜでしょうか?

ベストアンサー1

あなたの質問は、例外をスローする可能性のあるコードはNullPointerException例外をスローしない可能性のあるコードよりも悪いという仮定に基づいています。この仮定は間違っています。foobarプログラム ロジックにより が null になることは決してないと予想される場合は、 を使用する方がはるかに適切です。 が表示され、プログラムにバグがあることがOptional.of(foobar)わかります。 を使用していて、 がバグによるものである場合、プログラムは暗黙のうちに誤った動作を続け、より大きな災害になる可能性があります。この方法では、エラーがずっと後になって発生する可能性があり、どの時点で問題が発生したかを理解するのがはるかに難しくなります。NullPointerExceptionOptional.ofNullable(foobar)foobarnull

おすすめ記事