LoginSignup
2
1

More than 1 year has passed since last update.

【Java】java.lang.NullPointerExceptionを避ける方法

Last updated at Posted at 2021-01-23

#プログラミング勉強日記
2021年1月23日
Javaでコードを書いているときに、よく出てくるNullPointerExcptionの意味と、NullPointerExcptionにならないようにする方法をまとめる。

java.lang.NullPointerException
Request processing failed; nested exception is java.lang.NullPointerException

#NullPointerExceptionとは
 参照型の変数の値にnullが格納されているとき、それを参照しようとしたときには発生する例外である。

NullPointerException(ナル・ポインタ・エクセプション、ヌル-)は、プログラミング言語Javaにおける例外の一つである。
null値(定義されていない値)の参照型変数を参照しようとした時に発生する。NullPointerExceptionは実行時例外と呼ばれるjava.lang.RuntimeException クラスのサブクラスであるため、try-catch節による例外処理を書かなくてもコンパイルエラーは発生しない。
(引用:https://ja.wikipedia.org/wiki/NullPointerException)

 なので、以下のようなコードだとNullPointerExcptionが発生する。

class Sample{
    public static void main(String[] args) {
        Integer i = null;
        i.toString();
    }
}

#NullPointerExcptionを避ける方法
 基本的には、参照型変数がnullかどうか判定すればいい。
 先ほどのコードではNullPointerExcptionが発生したが、参照型変数がnullの場合は処理をしないというコードに書きかえることでNullPointerExcptionをなくせる。

class Sample{
    public static void main(String[] args) {
        Integer i = null;
        // i がnullの場合、処理をしない
        if(i == null) {
            return;
        }
        i.toString();
    }
}

 しかし、コード量が増えるほど判定は大変になるので対策方法を示す。

  1. null以外の値で変数を初期化する
  2. 配列は空で初期化する
  3. 戻り値にnullを返さない

 この3つを意識することで、NullPointerExcptionが発生しにくくなると思う。

#参考文献
【Java】java.lang.NullPointerException

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1