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
     
  • 相关阅读:
    数据仓库 VS 数据库
    准确率,精确率,召回率,F-measure 之间的关系
    OpenCV——查找、绘制轮廓
    OpenCV——仿射变换
    OpenCV函数 重映射
    Hough变换原理
    霍夫变换(直线检测、圆检测)
    边缘检测算子+滤波总结
    图像滤波—opencv函数
    图像滤波
  • 原文地址:https://www.cnblogs.com/zjfjava/p/8921209.html
Copyright © 2011-2022 走看看