Javaで発生するNullPointerExceptionエラー
Javaで、NullPointerExceptionはよくあるランタイムエラーの一種です。これは、オブジェクトのメンバーにアクセスしたり、オブジェクトのメソッドを呼び出す際に、オブジェクトの参照がnullであることを示します。言い換えれば、非nullのオブジェクトで操作を実行しようとした際に発生するエラーです。
NullPointerExceptionがよく起こる状況には、以下が含まれます:
- nullオブジェクトのメンバー変数にアクセスまたは変更する。
- nullオブジェクトのメソッドを呼び出す。
- 配列において、nullの配列要素にアクセスまたは変更をすることができます。
- メソッドの引数としてnullを渡す。
- nullポインターの参照を解除する。
NullPointerExceptionが発生した場合、Java仮想マシンは例外をスローしてプログラムの実行を終了します。NullPointerExceptionを避けるためには、オブジェクトを使用する前にオブジェクトの参照がnullでないことを確認し、参照がnullでないことを確認します。条件文(if文など)を使用するか、null安全演算子(?.)を使用して確認できます。
NullPointerExceptionが発生する例を次に示します。
String str = null;
System.out.println(str.length()); // NullPointerException
NullPointerExceptionを防ぐために、この例にnullチェックを追加することができます。
String str = null;
if (str != null) {
System.out.println(str.length());
} else {
System.out.println("str is null");
}
対象の参照がnullでないことを確認することにより、NullPointerExceptionを防ぎ、プログラムの正常な実行を保証できます。