@NotNull,@NotEmpty,@NotBlank区别

Posted lwcode6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@NotNull,@NotEmpty,@NotBlank区别相关的知识,希望对你有一定的参考价值。

 示例结果:

// null
String name = null;
@NotNull: false
@NotEmpty: false
@NotBlank: false
 
// 空字符串
String name = "";
@NotNull: true
@NotEmpty: false
@NotBlank: false
 
// 空格
String name = " ";
@NotNull: true
@NotEmpty: true
@NotBlank: false
 
// 字符串
String name = "liudehua";
@NotNull: true
@NotEmpty: true
@NotBlank: true

 

简述下三者区别,合理使用:

@NotNull: CharSequence, Collection, Map 和 Array不能是null, 但可以是空集(size = 0)。 

@NotEmpty:CharSequence, Collection, Map 和 Array不能是null, 且需要size > 0。 

@NotBlank: String不能是null,且去除两端空白字符后的长度(trimmed length)大于0。 

 

源码:

  • @NotNull:

技术图片

不能为null,但可以为empty, 没有Size的约束

  • @NotEmpty:

技术图片

不能为null,且Size > 0

  • @NotBlank:

技术图片

 只用于String,不能为null且trim()之后size > 0



 

以上是关于@NotNull,@NotEmpty,@NotBlank区别的主要内容,如果未能解决你的问题,请参考以下文章

@notnull @notempty @notblank区别

@NotNull,@NotBlank和 @NotEmpty使用

@NotEmpty@NotNull@NotBlank 的区别

@NotNull@NotEmpty@NotBlank的区别

@NotEmpty@NotNull 和 @NotBlank 的区别

在 Hibernate Validator 4.1+ 中,@NotNull、@NotEmpty 和 @NotBlank 有啥区别?