码迷,mamicode.com
首页 > 其他好文 > 详细

@NotEmpty、@NotNull 和 @NotBlank 的区别

时间:2018-04-23 19:53:40      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:pre   emma   str   name   rail   ignore   不能   区别   validate   

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 的区别

标签:pre   emma   str   name   rail   ignore   不能   区别   validate   

原文地址:https://www.cnblogs.com/zjfjava/p/8921209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!