您现在的位置: 365建站网 > 365学习 > 安卓中的@NotEmpty、@NotBlank、@NotNull的区别

安卓中的@NotEmpty、@NotBlank、@NotNull的区别

文章来源:365jz.com     点击数:273    更新时间:2017-12-12 10:49   参与评论

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

@NotEmpty 用在集合类上面 
@NotBlank 用在String上面 
@NotNull 用在基本类型上

 



只有简单的结果,但是再更具体一点的内容就搜不到了,所以去看了看源码,发现了如下的注释:

 

1. @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()方法)。

2. @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 
*/

“The difference to {@code NotEmpty} is that trailing whitespaces are getting ignored.” –> 和{@code NotEmpty}不同的是,尾部空格被忽略,也就是说,纯空格的String也是不符合规则的。所以才会说@NotBlank用于String。

3. @NotNull

/** 
* The annotated element must not be {@code null}. 
* Accepts any type. 

* @author Emmanuel Bernard 
*/

这个就很好理解了,不能为null。
 

  • 1.@NotNull:不能为null,但可以为empty

    (""," ","   ")      
    
  • 2.@NotEmpty:不能为null,而且长度必须大于0

    (" ","  ")
    
  • 3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0

    ("test")    即:必须有实际字符
    

*

        @NotNull: The CharSequence, Collection, Map or Array object is not null, 
        but can be empty.

        @NotEmpty: The CharSequence, Collection, Map or Array object is not null 
        and size > 0.

        @NotBlank: The string is not null and the trimmed length is greater than
         zero.
  • 4.examples:

    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

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (273人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------