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

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

文章来源:365jz.com     点击数:531    更新时间: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

    </>code

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

    </>code

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

    </>code

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

*

</>code

  1. @NotNull: The CharSequence, Collection, Map or Array object is not null,
  2. but can be empty.
  3. @NotEmpty: The CharSequence, Collection, Map or Array object is not null
  4. and size > 0.
  5. @NotBlank: The string is not null and the trimmed length is greater than
  6. zero.
  • 4.examples:

    </>code

    1. 1.String name = null;
    2. @NotNull: false
    3. @NotEmpty:false
    4. @NotBlank:false
    5. 2.String name = "";
    6. @NotNull:true
    7. @NotEmpty: false
    8. @NotBlank: false
    9. 3.String name = " ";
    10. @NotNull: true
    11. @NotEmpty: true
    12. @NotBlank: false
    13. 4.String name = "Great answer!";
    14. @NotNull: true
    15. @NotEmpty:true
    16. @NotBlank:true

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

发表评论 (531人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号