Objects.requireNonNullElse()
三項演算子なしに明確なデフォルトで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
難易度
初級
JDKサポート
Objects.requireNonNullElse()
利用可能
JDK 9(2017年9月)以降、広く利用可能
仕組み
requireNonNullElseは第1引数がnull以外であればそれを返し、そうでなければ第2引数を返します。デフォルト値もnullにはなれません — 両方がnullの場合はNPEをスローしてバグを早期に発見します。
関連ドキュメント