「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

Java開発で最もよく発生する例外の一つが NullPointerException(NPE) です。
「動くと思ったら落ちた」「例外箇所が分かりにくい」「テストで見逃した」など、プロジェクト規模が大きくなるほど厄介な問題になります。

しかし、ポイントを押さえて設計・実装すれば NullPointerExceptionは確実に減らすことができます。

本記事では、実務で使える「NullPointerExceptionを防ぐ5つの方法」をサンプルコード付きで紹介します。

Java NullPointerException


✅ NullPointerExceptionとは?

null の参照に対してメソッドを呼び出したり、フィールドにアクセスしようとすると発生する実行時例外です。

IDEでは検知されず、実行しないと気づけない点が厄介です。


① nullチェックを徹底する

最も基本的な対策は、使う前に必ず nullチェックをすること です。

ただし、条件が増えるほどコードが冗長になり、可読性が落ちるため、後述するOptionalや早期リターンと併用するのがおすすめです。


② Optionalを活用する(Java 8以降)

Optionalは、値があるかどうかを明確に扱う仕組みです。
nullを返すメソッドを避けたい場合に有効です。

デフォルト値を設定したい場合は orElse() が便利です。


③ 早期リターン(ガード節)を採用する

処理の前提条件を満たさない場合、早めに return で抜ける ことでnullアクセスを防止できます。

悪い例👇

良い例👇

コードがシンプルになり、NPEの発生確率も低下します。


④ 初期値を設定する(オブジェクト・コレクション)

変数に デフォルト値を与えておくことで nullのまま使われるケースを減らせます。

特にコレクションは null ではなく 空オブジェクト を返す設計にすると安全です。


⑤ nullを返す設計を避ける(メソッド設計ルール)

NPEの多くは nullを返すメソッドが存在することが原因 です。

🛑 悪い例:

👍 良い例:

または 場合によっては例外を返すほうが安全なこともあります。


まとめ:NullPointerExceptionを防ぐための考え方

方法特徴難易度
nullチェック徹底最も基本的だが冗長になりがち★☆☆
Optional活用Java8以降で推奨設計★★☆
早期リターンコードが読みやすく再発防止にも有効★★☆
初期値設定Null安全設計の基本★☆☆
nullを返さない設計アプリ全体の品質向上につながる★★★

✨結論

NullPointerExceptionは「気をつける」ではなく「防ぐ設計をする」ことで確実に減らせるエラーです。

特に以下の3つを優先採用すると劇的に改善します。

  • Optionalを積極的に使う

  • nullを返さないメソッド設計

  • コレクションは空リストで返すルール運用

Ads by Google