Errors 初級

三項演算子なしに明確なデフォルトでnull以外の値を取得する。

✕ Java 8
String name = input != null
    ? input
    : "default";
// easy to get the order wrong
✓ Java 9+
String name = Objects
    .requireNonNullElse(
        input, "default"
    );
このコードに問題がありますか? お知らせください。
📖

明確な意図

メソッド名がまさに何をするかを説明しています。

🛡️

null安全なデフォルト

デフォルト値もnullチェックされます。

📏

読みやすい

シンプルなnull-or-defaultロジックでは三項演算子より優れています。

旧来のアプローチ
三項演算子によるnullチェック
モダンなアプローチ
requireNonNullElse()
JDKバージョン
9
難易度
初級
Objects.requireNonNullElse()
利用可能

JDK 9(2017年9月)以降、広く利用可能

requireNonNullElseは第1引数がnull以外であればそれを返し、そうでなければ第2引数を返します。デフォルト値もnullにはなれません — 両方がnullの場合はNPEをスローしてバグを早期に発見します。

共有 𝕏 🦋 in