在Java中,@NotNull注解是javax.validation.constraints包中的一個驗證注解,用于標記參數、字段或方法返回值不能為空。當一個使用了@NotNull注解的元素為null時,會拋出javax.validation.constraints.NotNull異常。
@NotNull注解通常與Bean Validation API一起使用,可以在實體類的字段上添加@NotNull注解來指定該字段不能為空,例如:
public class User {
@NotNull
private String username;
@NotNull
private String password;
// 省略getter和setter方法
}
在使用Bean Validation API驗證實體類時,可以通過Validator對實體類中的字段進行驗證,如果驗證失敗會拋出ConstraintViolationException異常,示例代碼如下:
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.NotNull;
public class Main {
public static void main(String[] args) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
User user = new User();
user.setUsername(null);
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getMessage());
}
}
}
在上面的示例中,向User對象中的username字段賦值為null,由于該字段上添加了@NotNull注解,所以在驗證時會拋出ConstraintViolationException異常,打印出錯誤消息。