@notnull注解和@notblank注解
时间: 2024-05-11 19:18:00 浏览: 127
@NotNull 和 @NotBlank 注解都是 Java Bean Validation API 中的注解,用于校验数据的有效性。但是它们的作用略有不同。
@NotNull 注解用于校验一个对象是否为 null,不能为 null。它可以用于校验任何类型的对象,包括字符串、数字和自定义的对象等。
@NotBlank 注解用于校验一个字符串是否为空或者只包含空格。它只能用于校验字符串类型的对象。
举个例子,如果我们想要确保一个字符串不为空且长度必须大于 0,我们可以使用 @NotBlank 注解,如下所示:
```java
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
// ...
}
```
如果我们想要确保一个对象不能为 null,我们可以使用 @NotNull 注解,如下所示:
```java
public class User {
@NotNull(message = "用户信息不能为空")
private UserInfo userInfo;
// ...
}
```
相关问题
@NotBlank @NotNull @NotBlank校验非空注解怎么获得自定义message
对于`@NotBlank`、`@NotNull`等校验非空注解,你可以通过在注解上使用`message`属性来获得自定义的提示信息。例如,使用`@NotBlank(message = "不能为空")`来指定当校验不通过时的提示信息为"不能为空"。
在使用这些注解进行校验时,如果校验不通过,会抛出`ConstraintViolationException`异常。你可以捕获该异常,并通过调用`getConstraintViolations()`方法来获取所有的校验错误信息。每个校验错误信息都包含了错误的字段、错误的值以及提示信息等。
以下是一个示例代码,演示了如何获取自定义的提示信息:
```java
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.NotBlank;
import java.util.Set;
public class Main {
public static void main(String[] args) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
User user = new User("");
Set<ConstraintViolation<User>> violations = validator.validate(user);
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getPropertyPath() + " " + violation.getMessage());
}
}
static class User {
@NotBlank(message = "用户名不能为空")
private String username;
public User(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
}
```
运行上述代码,输出将会是:
```
username 用户名不能为空
```
这样,你就可以根据校验不通过的字段和自定义的提示信息进行相应的处理了。
@notnull @notblank @nutempty
@NotNull、@NotBlank和@NotEmpty是在Java中用于数据验证的注解。这些注解的作用是确保被注解的字段或参数不为null、不为空或不为空格。
@NotNull注解用于标记字段或参数不能为空。它适用于任何类型的字段,包括引用类型和基本类型。被@NotNull注解标记的字段或参数不能为null。
@NotBlank注解用于标记字符串字段或参数不能为空或为空格。它适用于字符串类型的字段或参数。被@NotBlank注解标记的字符串字段或参数不能为null,同时也不能只包含空格字符。
@NotEmpty注解用于标记集合类型的字段或参数不能为空或者长度不能为0。它适用于字符串、Collection、Map和数组类型的字段或参数。被@NotEmpty注解标记的集合字段或参数不能为null,并且长度不能为0(对于String、Collection和Map类型可以使用isEmpty()方法进行检查)。
这些注解可以在数据验证时起到很好的作用,帮助我们确保数据的完整性和准确性。在使用这些注解时,需要根据具体的需求选择合适的注解来进行标记和验证。同时还需要注意,被标记的字段或参数需要满足注解的要求,否则会触发相应的验证异常。
需要注意的是,@NotNull、@NotBlank和@NotEmpty注解并不会自动对字段或参数进行初始化。如果希望在声明字段的同时进行初始化,可以使用@RequiredArgsConstructor注解,它可以代替@Autowired注解,并且需要使用final关键字或@NotNull注解来标记成员变量。另外,如果类中存在final字段没有被初始化的情况,可以使用@NoArgsContructor(force=true)注解来为没有初始化的final字段设置默认值0/false/null。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Spring学习笔记-参考《Spring 实战第五版》(2021.9.9更新)](https://blog.csdn.net/qq_48302234/article/details/120017385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)