Java - メソッド引数で NotNull アノテーションを使用する
今日のチュートリアルでは、@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
が発生する可能性があります。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn