zoukankan      html  css  js  c++  java
  • @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()方法)

    @NotNull

    /**
    * The annotated element must not be {@code null}.
    * Accepts any type.
    *
    * @author Emmanuel Bernard
    */
    即不能为null。

    @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。

    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
     
  • 相关阅读:
    easyui datagrid 悬浮事件
    wpf 遍历控件及其值
    wpf 异常处理和关闭进程
    c# 反射类字段
    wpf 获取datagrid中模板中控件
    JavaScript中ActiveXObject对象
    动画执行完后再次执行
    鼠标滚轮事件(mousewheel 与 DOMMouseScroll)
    移动端的小问题整理
    flex布局兼容问题
  • 原文地址:https://www.cnblogs.com/zjfjava/p/8921209.html
Copyright © 2011-2022 走看看