HOWTO · Java
Java - メソッド引数で NotNull アノテーションを使用する
このチュートリアルでは、@NotNull アノテーションについて説明し、Java のメソッド引数でそれを使用する方法を示します。
このページの内容
今日のチュートリアルでは、@NotNull アノテーションについて説明し、コード例を使用して、Java での作業中にメソッド引数でそれを使用する方法を示します。
@NotNull アノテーションの概要
変数またはメソッドが null 値を返さないように設定したい場合は、@NotNull アノテーションを使用できます。 これは標準の JSR アノテーションであり、アノテーション付きのプロパティ値が null でないかどうかを検証します。
@NotNull の特徴は、メソッドを @NotNull に設定した場合、null 値を返さないことと、変数を @NotNull に設定した場合、null を保持できないことです。 価値。
重要な点は、親メソッドに @NotNull が含まれている場合、その子に @NotNull の注釈を付ける必要があることです。 次に、以下のコードフェンスにジャンプして、メソッド引数での使用を学びましょう。
メソッド引数で @NotNull アノテーションを使用する
コード例:
import javax.validation.constraints.NotNull;
public class JavaNotNull {
int sum(@NotNull int a, int b) {
return a + b;
}
public static void main(String args[]) {
JavaNotNull jnn = new JavaNotNull();
System.out.println("The sum is: " + jnn.sum(5, 5));
}
}
出力:
The sum is: 10
上記の例では、最初に @NotNull に必要なパッケージを import javax.validation.constraints.NotNull; として含め、その後、sum() という名前のメソッドを作成し、その値を として設定しました。 @NotNull.
sum() メソッドは、2つの変数間の合計演算の結果を返すことに注意してください。 次に、JavaNotNull クラスのオブジェクトを作成し、そのメソッド sum() を呼び出して上記の出力を取得しました。
上記の例の sum() に null 変数を渡そうとするとどうなるか考えていますか?
答えは、上記の例ではメソッド変数を @NotNull に設定しているため、null 値を受け取ることができないからです。 次の更新された例では、null 値を sum() メソッドに渡して何が起こるかを確認します。
更新されたサンプル コード:
import javax.validation.constraints.NotNull;
public class JavaNotNull {
int add(@NotNull int a, int b) {
return a + b;
}
public static void main(String args[]) {
JavaNotNull jnn = new JavaNotNull();
// We are trying to pass a null value here
System.out.println("The sum is: " + jnn.add(null, 5));
}
}
ここで、上記のコード例を実行しようとすると、次のエラーが発生します。 メソッドを @NotNull に設定すると、null 値を受け取ることができないためです。
error: Class names, 'JavaNotNull', are only accepted if annotation processing is explicitly requested
1 error
null 値でメソッドを呼び出し、そのメソッドが @NotNull に設定されている場合は、重要な注意事項があります。 実行時に NullPointerException が発生する可能性があります。