本文主要介绍@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}。
*接受任何类型。
*
* @作者伊曼纽尔伯纳德
*/
这个很好理解。不能为空。