@NotNull、@NotEmpty、@NotBlank的区别,官方 最新 详解

前言

我有个需求,就是传入的参数不能为空,其实就是必传的意思,问了我们公司的前辈,他让我写上@Blank即可,写上之后一直报错:HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'java.lang.Integer'. Check configuration for 'pageSize'
我的代码例如:

@Data
public class QueryVideoPageDTO {
    
    
    private String userName;
    @NotNull(message = "pageSize不能为空")
    @Min(value = 1)
    private Integer pageSize;
    @NotBlank(message = "pageNum不能为空")
    @Min(value = 1)
    private Integer pageNum;
}

解决:将@NotBlank换成@NotNull

@Data
public class QueryVideoPageDTO {
    
    
    private String userName;
    @NotNull(message = "pageSize不能为空")
    @Min(value = 1)
    private Integer pageSize;
    @NotBlank(message = "pageNum不能为空")
    @Min(value = 1)
    private Integer pageNum;
}

区别

直接看官方解释:

@NotNull

在这里插入图片描述
意思是使用此注解的属性不能是null,可以在任何类型的属性上使用。

@NotEmpty

在这里插入图片描述
意思是使用此注解的属性不能是null或空字符串(长度<=0);可以在字符串、Collection集合、Map集合、Array数组上使用;

@NotBlank

在这里插入图片描述
意思是此注解的属性不能为null,且必须包含一个非空白字符的字符串(长度>=0),可以在字符串上使用。

总结

@NotNull:可以在任何类型上使用 值不许为null
@NotEmpty:可以在字符串、Collection集合、Map集合、Array数组上使用;值不许为null和长度<=0的字符串
@NotBlank:仅可以在字符串上使用;值不许为null并且字符串长度必须>0,空格、回车、table之类的空白str都不行哦~

猜你喜欢

转载自blog.csdn.net/qq_44444470/article/details/131811764