ホームページ >Java >&#&チュートリアル >java.lang.NullPointerExceptionを解決するにはどうすればよいですか?

java.lang.NullPointerExceptionを解決するにはどうすればよいですか?

王林
王林オリジナル
2023-06-25 14:30:216330ブラウズ

Java プログラミングでは、java.lang.NullPointerException (以下、NPE) 例外が発生することがあります。この例外は通常、null オブジェクトを使用しようとしたとき、または null 参照にアクセスしようとしたときにスローされ、コード内で予期しない null 値が見つかったことを示します。

NPE を解決するには多くの方法があります。この記事では、いくつかの一般的な解決策を紹介します。

  1. null 参照のチェック

最も一般的な理由は、null オブジェクトまたは null 参照にアクセスすることです。コードでオブジェクトを使用するときは、オブジェクトが null でないことを確認してください。 NPE 例外は、オブジェクトが null の場合に発生します。これを防ぐには、オブジェクトを参照する前に必ず null 参照を確認してください。

たとえば、次のコードでは、メソッド checkName() は null を返すため、その戻り値が null かどうかを確認する必要があります。

String name = checkName();
if(name != null){
  // do something with name
} else {
  // handle null value
}
  1. null オブジェクトの使用を避ける

null オブジェクトの使用を回避すると、NPE の問題を効果的に解決できます。 Optional クラスを使用すると、null オブジェクトの使用を避けることができます。このクラスは、null の可能性のある値を表現するためのより良い方法を提供するために Java 8 で導入されました。

たとえば、次のコードでは、Optional 型の変数に String 型の null 以外の値を含めることができます。

Optional<String> value = Optional.of("test");
if(value.isPresent()){
  // do something with value
} else {
  // handle null value
}
  1. デフォルト値を使用する

NPE を回避するために、NULL 値のデフォルト値を指定する必要がある場合があります。デフォルト値は、三項演算子または if/else ステートメントを使用して指定できます。次に、三項演算子の使用例を示します。

String name = checkName();
String result = (name != null) ? name : "default value";
  1. @NonNull アノテーションの使用

Java 開発者は、@NonNull アノテーションを使用して NPE の問題を回避できます。このアノテーションは、コードのコンパイル段階で変数またはパラメータが null でないことを保証するために使用されます。

次に、@NonNull アノテーションが付けられたメソッドの例を示します。

public void printName(@NonNull String name){
  System.out.println(name);
}

printName() メソッドの呼び出し時に null 値が渡されると、コンパイル時に警告が生成されます。 NPEの発生を防ぐことができます。

  1. Objects.requireNonNull() の使用

Java 7 では、オブジェクトが正しいかどうかを確認するために使用できる静的メソッドである Objects.requireNonNull() メソッドが導入されました。ヌル。入力パラメータ値が null の場合、このメソッドは NullPointerException 例外をスローします。そうでない場合は、パラメータ自体を返します。

次に、Objects.requireNonNull() メソッドの使用例を示します。

String value = Objects.requireNonNull(checkValue(), "value cannot be null");

checkValue() メソッドが null を返した場合、例外がスローされます。

概要

上記は、NPE を解決するための実践的な方法です。 NPE 例外が発生してもパニックにならず、上記の方法で問題をすぐに解決できます。同時に、コードを記述するときは、null 参照や空のオブジェクトを避けるようにしてください。これにより、コードがより読みやすく、明確で堅牢になります。

以上がjava.lang.NullPointerExceptionを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。