notnull和notempty区别,notblank和notempty

notnull和notempty区别,notblank和notempty,@NotEmpty、@NotBlank、@NotNull的区别

本文主要介绍@NotEmpty、@NotBlank和@NotNull的区别。有需要的朋友可以参考一下。

网上搜索的内容大致如下:

验证框中的@NotEmpty、@NotBlank和@NotNull乍一看很容易混淆。记录主要用法:

@NotEmpty用于集合类。

@NotBlank用于字符串

@NotNull用于基本类型。

只有简单的结果,更具体的内容搜索不到,所以我看了一下源代码,发现了以下注释:

1. @NotEmpty

复制代码如下:

/**

*断言带批注的字符串、集合、映射或数组不为{@code null}或空。

*

* @作者伊曼纽尔伯纳德

* @作者Hardy Ferentschik

*/

也就是说,带有@NotEmpty的String class、Collection、Map、array不能为空,也不能长度为0(String、Collection、Map的isEmpty()方法)。

2. @NotBlank

复制代码如下:

/**

*验证带注释的字符串不为{@code null}或空。

*与{@code NotEmpty}的不同之处在于,尾随空格将被忽略。

*

* @作者Hardy Ferentschik

*/

"与{@code NotEmpty}的不同之处在于尾部的空白被忽略."

与{@code NotEmpty}不同,尾随空格被忽略,也就是说,带有纯空格的字符串也是不规则的。这就是@NotBlank用于String的原因。

3. @NotNull

复制代码如下:

/**

*带批注的元素不能是{@code null}。

*接受任何类型。

*

* @作者伊曼纽尔伯纳德

*/

这个很好理解。不能为空。

notnull和notempty区别,notblank和notempty