Java は厳密に型指定された言語であり、使用前に変数を明示的に初期化する必要があります。変数が初期化されておらず、値が割り当てられていない場合、または変数が null オブジェクトを参照している場合、実行時に NullPointerException がスローされます。この種の例外は Java プログラムで頻繁に発生するため、例外がどのように発生するのか、またその回避方法をよく理解する必要があります。
Java では、NullPointerException は通常、次の状況によって発生します。
String str; System.out.println(str.length());
この例では、変数 str は初期化されておらず、値も割り当てられていないため、その length() メソッドにアクセスすると NullPointerException がスローされます。
String str = null; System.out.println(str.length());
この例では、変数 str に null 値が割り当てられているため、その length() メソッドにアクセスすると NullPointerException がスローされます。
int[] arr = new int[3]; System.out.println(arr[3]);
この例では、arr 配列には 3 つの要素しかなく、プログラムが 4 番目の要素にアクセスしようとすると ArrayIndexOutOfBoundsException 例外がスローされます。この配列がオブジェクト配列の場合、配列内のオブジェクトのプロパティまたはメソッドにアクセスすると、NullPointerException が発生する可能性があります。
NullPointerException を回避するにはどうすればよいですか?
NullPointerException を回避する最善の方法は、変数を使用する前に明示的に初期化して割り当て、プログラム内で null オブジェクトを参照しないようにすることです。これは、Java 8 の if ステートメントまたは Optional クラスを使用して実現できます。
String str = null; if(str != null) { System.out.println(str.length()); } String str2 = Optional.ofNullable(str).orElse(""); System.out.println(str2.length());
この例では、if ステートメントは str が null オブジェクトかどうかを判断するために使用され、Optional クラスは、str が null オブジェクトであることを回避するために使用されます。 null オブジェクトを参照しています。
つまり、NullPointerException は、Java 開発において非常に一般的な例外の 1 つです。通常、オブジェクトが初期化されていない場合、または null オブジェクトを参照している場合に発生します。この例外を回避するには、使用前に変数を初期化し、プログラム内で空のオブジェクトを参照しないようにする必要があります。
以上がJava で NullPointerException はどのように生成されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。