@NotEmpty,NotNull和@NotBlank的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@NotEmpty,NotNull和@NotBlank的区别相关的知识,希望对你有一定的参考价值。
参考技术A A,null代表无效数据,empty代表无初始化@NotEmpty@NotNull 和 @NotBlank 的区别
1. 三者主要区别如下:
- @NotEmpty :用于集合类,不能为null,且size>0
- @NotNull:不能为null,但可以为empty,没有size的约束
- @NotBlank:只用于String,不能为null,且trim()之后size>0
2. 通过查看源码注释如下:
@NotEmpty
/** * Asserts that the annotated string, collection, map or array is not {@code null} or empty. * * @author Emmanuel Bernard * @author Hardy Ferentschik */
也就是说,加了@NotEmpty的String类、Collection、Map、数组,是不能为null或者长度为0的。(String、Collection、Map的isEmpty()方法)
@NotBlank
/** * Validate that the annotated string is not {@code null} or empty. * The difference to {@code NotEmpty} is that trailing whitespaces are getting ignored. * * @author Hardy Ferentschik */
和{@code NotEmpty}不同的是,尾部空格被忽略,也就是说,纯空格的String也是不符合规则的。所以才会说@NotBlank用于String。
@NotNull
/** * The annotated element must not be {@code null}. * Accepts any type. * * @author Emmanuel Bernard */
即不能为null。
3. 示例:
1.String name = null; @NotNull: false @NotEmpty:false @NotBlank:false
2.String name = ""; @NotNull:true @NotEmpty: false @NotBlank: false
3.String name = " "; @NotNull: true @NotEmpty: true @NotBlank: false
4.String name = "Great answer!"; @NotNull: true @NotEmpty:true @NotBlank:true
以上是关于@NotEmpty,NotNull和@NotBlank的区别的主要内容,如果未能解决你的问题,请参考以下文章
在 Hibernate Validator 4.1+ 中,@NotNull、@NotEmpty 和 @NotBlank 有啥区别?
@NotEmpty@NotNull 和 @NotBlank 的区别
@NotNull,@NotEmpty,@NotBlank区别
Bean Validation @NotNull、@NotBlank 和 @NotEmpty 在 JSF+Tomcat 中不起作用