@notblank 和 @notnull区别
时间: 2023-05-01 07:01:05 浏览: 136
@notblank 和 @notnull 是 Java 中用于校验字符串是否为空的注解,但它们之间有一些区别。
@notnull 用于校验字符串是否为 null,如果字符串为 null,则抛出异常。
@notblank 则是用于校验字符串是否为空字符串或只包含空白字符,如果字符串为空字符串或只包含空白字符,则抛出异常。
因此,当要求字符串不能为 null 时,应使用 @notnull,当要求字符串不能为空字符串或只包含空白字符时,应使用 @notblank。
相关问题
@NotBlank和@NotNull
@NotNull和@NotBlank是两种常用的校验注解,它们有以下区别:
1. @NotNull: 这个注解表示被标注的字段不能为null,但可以为空字符串。它通常用于对基本数据类型的非空校验上,可以结合@Size、@Max、@Min等注解对字段数值进行大小的控制。
2. @NotBlank: 这个注解表示被标注的字段不能为null,并且调用trim()方法后,字符串的长度必须大于0。注意,@NotBlank只能用在String类型的字段上。
举例来说,如果我们有一个String类型的字段name,使用@NotNull注解,那么name字段不能为null,但可以为空字符串""。如果使用@NotBlank注解,则name字段不能为null,并且不能为空字符串,即必须有实际的字符内容。
总结起来,@NotNull用于基本数据类型的非空校验,@NotBlank用于String类型的非空校验,并且需要有实际的字符内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [常用的校验注解之 @NotNull、@NotBlank、@NotEmpty 的区别](https://blog.csdn.net/weixin_49770443/article/details/109772162)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [Spring注解@NoNull、@NotEmpty、@NotBlank的区别及注解无效以及嵌套对象的无效解决办法](https://blog.csdn.net/wounler/article/details/124378538)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [常用校验注解@NotEmpty,@NotBlank,@NotNull,@Valid,@Validated用法区别,以及搭配 BindingResult使用,...](https://blog.csdn.net/weixin_46015018/article/details/122637042)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
@notnull注解和@notblank注解
@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;
// ...
}
```