カテゴリ: Java 更新日: 2026/02/06

JavaのNullPointerExceptionを完全ガイド!初心者でも理解できる原因と対処法

NullPointerExceptionクラス
NullPointerExceptionクラス

教材紹介 Java学習のおすすめ教材

Javaの基礎を体系的に整理しながら学習したい方には、 資格対策としても定評のある定番教材が参考になります。

Javaプログラマ Silver SE 17 教科書をAmazonで見る

※ Amazon広告リンク

先生と生徒の会話形式で理解しよう

生徒

「Javaのプログラムを実行したら、NullPointerExceptionっていうエラーが出たんですけど、どういうことなんでしょうか?」

先生

「NullPointerExceptionは、オブジェクトがnullなのに、そのオブジェクトにアクセスしようとしたときに発生する代表的な実行時例外です。」

生徒

「nullっていうのは何も入っていない状態ですよね?それを使おうとするとエラーになるんですか?」

先生

「そのとおりです。初心者が最初につまずきやすいポイントなので、具体例を交えて解説していきましょう。」

1. NullPointerExceptionとは?

1. NullPointerExceptionとは?
1. NullPointerExceptionとは?

NullPointerExceptionは、java.langパッケージに含まれる非チェック例外で、プログラム実行時に発生します。この例外は、オブジェクト参照がnullなのにメソッドを呼び出したりフィールドへアクセスしたときにスローされます。Javaを学び始めた初心者がよく直面するエラーであり、理解しておくことが重要です。

2. NullPointerExceptionが発生する例

2. NullPointerExceptionが発生する例
2. NullPointerExceptionが発生する例

次のコードは、オブジェクトを初期化していない状態でメソッドを呼び出しているため、NullPointerExceptionが発生します。


public class NullPointerExample {
    public static void main(String[] args) {
        String text = null;
        System.out.println(text.length()); // NullPointerException発生
    }
}

Exception in thread "main" java.lang.NullPointerException

変数textnullのままlength()を呼び出したため、エラーとなっています。

3. NullPointerExceptionを回避する方法

3. NullPointerExceptionを回避する方法
3. NullPointerExceptionを回避する方法

NullPointerExceptionを避けるには、オブジェクトを必ず初期化することや、nullかどうかをチェックすることが基本です。


public class NullPointerSafe {
    public static void main(String[] args) {
        String text = null;
        if (text != null) {
            System.out.println(text.length());
        } else {
            System.out.println("変数はnullです");
        }
    }
}

変数はnullです

このようにnullチェックを入れることで、エラーを防止できます。

4. よくある原因と初心者が間違いやすいポイント

4. よくある原因と初心者が間違いやすいポイント
4. よくある原因と初心者が間違いやすいポイント

NullPointerExceptionは、配列やコレクション、メソッドの戻り値などでも発生しやすいです。例えば配列を作成していないのにアクセスしたり、Mapから取得した値がnullなのにそのまま利用すると例外が発生します。初心者は「変数が宣言されているから使える」と誤解しがちですが、実際にはオブジェクトが生成されていなければ利用できません。

5. nullを扱う上でのベストプラクティス

5. nullを扱う上でのベストプラクティス
5. nullを扱う上でのベストプラクティス

Javaではnullを避けるために、Optionalクラスを使ったり、デフォルト値を設定するのが効果的です。また、早めにnullチェックを行い、問題を小さく切り分けるのも重要です。業務システムやWebアプリケーションでは、外部入力やAPIからの戻り値にnullが含まれるケースが多いため、初心者のうちから安全に扱う習慣を身につけておきましょう。

6. フレームワーク利用時の注意点

6. フレームワーク利用時の注意点
6. フレームワーク利用時の注意点

SpringやJakartaEEといったフレームワークを利用する際にも、依存注入が正しく設定されていない場合にNullPointerExceptionが発生することがあります。設定ミスやアノテーションの不足によって依存関係がnullのままになるためです。初心者が大規模なフレームワークを学ぶときには、この点も特に注意して確認するとよいでしょう。

カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「And」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「Distinct」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Java
JavaのScannerクラスとnextメソッドの使い方を徹底解説!初心者でもわかる入力処理
更新記事
New4
Thymeleaf
Thymeleafのth:lang属性を完全解説!初心者でもわかる国際化対応の方法
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.4
Java&Spring記事人気No4
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.5
Java&Spring記事人気No5
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.6
Java&Spring記事人気No6
Spring
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.7
Java&Spring記事人気No7
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.8
Java&Spring記事人気No8
Spring
SpringのModelクラスの使い方を完全ガイド!初心者でも安心

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク