@NotEmpty、@NotBlank、@NotNull的区别_the difference to notempty is that trailing whites-程序员宅基地

技术标签: ssh  

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

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/andyzhaojianhui/article/details/78364898

智能推荐

人脸对齐--Face Alignment In-the-Wild: A Survey_人脸对齐 综述-程序员宅基地

文章浏览阅读8.2k次。Face Alignment In-the-Wild: A Survey Computer Vision and Image Understanding Volume 162, September 2017, Pages 1-22 https://www.sciencedirect.com/science/article/pii/S1077314217301455人脸对齐综述文献人脸对齐的定_人脸对齐 综述

模板——并差集_力扣和acm-程序员宅基地

文章浏览阅读106次。并差集_ACM模板题目描述第1行给出两个正整数,分别是城镇数目N (N < 1000 )和道路数目M。随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。要使任何两个城镇间都可以实现交通,但不一定有直接的道路相连,只要互相间接通过道路可达即可,输出最少还需要建设的道路数目?const int maxn = 1010;//N..._力扣和acm

分层强化学习 学习笔记-程序员宅基地

文章浏览阅读1.5k次,点赞5次,收藏25次。MLSH的idea很自然,简单有效,temporal abstraction的做法和common 的 HRL方法基本一致需要注意的一点是,通常single task中,为了training的稳定性,会keep master policy random,warmup subpolicy,这是希望master policy能在subpolicy有一定level之后,再进行有效learning;_分层强化学习

山东中职计算机应用基础课件,计算机应用基础课件(中职)-精选版.ppt-程序员宅基地

文章浏览阅读318次。计算机应用基础课件(中职)-精选版.ppt计算机应用基础 目录 第一章 计算机基础知识 1.1 计算机的定义 计算机又称“电脑”。 电子计算机是一种可以输入、输出、处理、存储数据和 信息,无需人类干预的一类电子设备。 1.2 计算机的发展历程 ? 1946年2月14日,世界上第一台电脑ENIAC在美国 ...

Xshell的下载和安装(超详细)_xshell下载csdn-程序员宅基地

文章浏览阅读811次。Xshell的下载和安装(超详细)_xshell下载csdn

erlang (erlang 操作模块)学习笔记(二)-程序员宅基地

文章浏览阅读1k次,点赞9次,收藏7次。如果指定了 option short,则格式化浮点数 以最少的位数,仍保证 F =:= list_to_float(float_to_list(F, [short])))。返回进程字典中与 Key 关联的值 Val,如果 Key 不存在,则返回 undefined。预计时间 此函数当前实现的复杂度为 O(1),最坏情况下的时间复杂度为O(N), 其中 N 是流程中的项数 字典。此函数与erlang/1,2,3的不同之处在于导致 不同类的例外情况,并且有理由 不包括调用中的函数列表 叠。

随便推点

【沙发管家】电视猫3.1.6新版体验:资源更全面,院线大片看到爽!-程序员宅基地

文章浏览阅读160次。近日电视猫迎来了最新版本(V3.1.6)的更新,此次更新除了新增的奇趣频道,优化了智能推荐算法,最大的亮点,应该就是新推出的影视VIP服务了,新版极大地扩展了内容包(电影、电视剧、综艺、少儿、海外剧、纪录片),资源更全面。下面我们就一起体验一番最新版电视猫的不同之处吧。近日电视猫迎来了最新版本(V3.1.6)的更新,此次更新除了新增的奇趣频道,优化了智能推荐算法,最大的亮点,应该就是新推出的影..._电视猫3.1.6

华为手机更新安装apk没有自动打开问题_android apk安装完没有直接打开-程序员宅基地

文章浏览阅读3.9k次。刚开始写的apk安装代码,结果在华为mate8中更新apk,安装完之后并没有重新启动。 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); File file = new File(apkPath); if (file.exists()) { ..._android apk安装完没有直接打开

Android P (2)---Android 9.0 “Pistachio Ice Cream”新功能和特性_android pie pistachio ice cream-程序员宅基地

文章浏览阅读435次。据有关消息报道,下一版本安卓(9.0)的初步代号已经确定为“Pistachio Ice Cream”(开心果冰淇淋),并将带来极大的功能变化。当然了按照Google的惯例,如此长的三个单词代号,通常都只会在安卓新版本开发初期使用,后期会更换为更简单的单个或双个单词代号,但无论如何,下一版安卓的代号将是以P字母开头的甜点。刘海设计安卓P 9.0的一个核心变化就是会支持类似iPhone X的刘海屏设计..._android pie pistachio ice cream

html5微课程制作,用H5做微课的好处,你知道多少?-程序员宅基地

文章浏览阅读399次。原标题:用H5做微课的好处,你知道多少?大多数老师都曾使用过传统网页技术来制作移动学习课件。对于会使用Word的老师而言,只要再加上一些编辑工具或网页范例即可以套用,这是相当简单的。但是,由于传统网页技术本身的局限,此类课件通常以文字+图片为主,缺乏声影的配合,更无法引入一些交互参与的教学设计,使得学生注意力难以集中,学习效果也不尽如人意。而且现阶段,大部分微课课程还仅采用视频方式表现,同样缺少交..._h5微课是什么意思

理解Android虚拟机体系结构-程序员宅基地

文章浏览阅读459次。1 什么是Dalvik虚拟机  Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Google对其进行了特定的优化,使得Dalvik具有高效、简洁、节省资源的特..._android java虚拟机 系统调用

Java基础- ThreadLocal_threadlocal<integer>记录递增数值-程序员宅基地

文章浏览阅读140次。使用场景ThreadLocal用在多线程场景下,保存线程上下文信息,再任意需要的地方可以获取线程安全的,避免某些情况下需要考虑线程安全同步带来的性能损失它能让线程拥有了自己内部独享的变量每一个线程可以通过get、set方法去进行操作可以覆盖initialValue方法指定线程独享的值通常会用来修饰类里private static final的属性,为线程设置一些状态信息,例如user..._threadlocal记录递增数值