@validate校验中的@NotEmpty、@NotBlank、@NotNull区别

2023-11-10

1、引入的包:jakarta.validation-api-2.0.2.jar

在这里插入图片描述

2、直接看源码上的注释

@NotEmpty
/**
 * The annotated element must not be {@code null} nor empty.
 * <p>
 * Supported types are:
 * <ul>
 * <li>{@code CharSequence} (length of character sequence is evaluated)</li>
 * <li>{@code Collection} (collection size is evaluated)</li>
 * <li>{@code Map} (map size is evaluated)</li>
 * <li>Array (array length is evaluated)</li>
 * </ul>
 *  * @author Emmanuel Bernard
 * @author Hardy Ferentschik
 *  * @since 2.0
 */
@Documented
@Constraint(validatedBy = { })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
public @interface NotEmpty {
	...
}
解释
  • 此注解元素校验必须不为null且不为空
  • 可以修饰的数据类型:
  • CharSequence(字符串)
  • Collection(集合)
  • Map(键值对)
  • Array(数组)
@NotBlank
/**
 * The annotated element must not be {@code null} and must contain at least one
 * non-whitespace character. Accepts {@code CharSequence}.
 *
 * @author Hardy Ferentschik
 * @since 2.0
 *
 * @see Character#isWhitespace(char)
 */
@Documented
@Constraint(validatedBy = { })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
public @interface NotBlank {
	...
}
解释
  • 此注解元素校验必须不为null且必须包含一个不为空的字符串
  • 只可以修饰的数据类型:CharSequence(字符串)
@NotNull
/**
 * The annotated element must not be {@code null}.
 * Accepts any type.
 *
 * @author Emmanuel Bernard
 */
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
@Documented
@Constraint(validatedBy = { })
public @interface NotNull {
	...
}
解释
  • 此注解元素校验必须不为null
  • 接受任意类型的数据

3、用法示例

    /**
     * 员工ID
     */
    @NotEmpty(message = "员工id不能为空")
    private List<Integer> empIdList;


    /**
     * 客户id
     */
    @NotBlank(message = "公司名称不能为空")
    private String companyName;

    /**
     * 组织id
     */
    @NotNull(message = "组织ID不能为空")
    private String orgId;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

@validate校验中的@NotEmpty、@NotBlank、@NotNull区别 的相关文章

  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 基于用户的协同过滤算法(userCF)

    1 定义 userCF 当一个用户A需要个性化推荐时 可以先找到和他有相似兴趣的其他用户 然后把那些用户喜欢的 而用户A没有听说过的物品推荐给A 这种方法称为基于用户的协同过滤算法 基于用户的协同过滤算法主要包括两个步骤 2 第一步 找到和
  • c++ java rgb与nv21互转

    目录 jni函数 c rgb转nv21 可以转 不报错 但是转完只有黑白图 java yuv420保存图片 先转nv21 再保存ok c yuv420月bgr互转 测试ok jni函数 JNIEXPORT void JNICALL Java
  • 一.安装deepin

    笔记本是联想拯救者y7000 原配 cpu i5 8300h 三星内存8g 固态128g 2T机械 独显是nvidia gtx1050ti 后加装16G同品牌同频率内存组24G内存 固态128卸掉换512 伴随着几次win10升级 电脑待机
  • kingbaseES查询数据库里一个模式下所有的表以及大小

    1 例如以public模式为样例 SELECT table name sys size pretty table size AS table size sys size pretty indexes size AS indexes size
  • react usestate 更新_React中setState同步更新策略

    setState 同步更新 我们在上文中提及 为了提高性能React将setState设置为批次更新 即是异步操作函数 并不能以顺序控制流的方式设置某些事件 我们也不能依赖于this state来计算未来状态 典型的譬如我们希望在从服务端抓
  • 静态时序分析——单周期

    一 建立时间的检查 建立时间的检查是指检查电路里每一个触发器的数据和时钟的关系是否满足建立时间的要求 我们以上图为例进行建立时间检查 由图可知 我们主要针对第二个触发器UFF1进行检查 我们可以梳理时序关系如下 通过这个图 我们可以得到满足
  • 01 二叉树的BFS(广度、层次或水平遍历实现)【Binary Tree 二叉树】

    二叉树的遍历分为BFS和DFS两种大类 下面完整实现BFS遍历二叉树 例如二叉树 1 2 3 4 5 BFS遍历结果 1 2 3 4 5 具体的代码实现 方法一 采用递归遍历的方法实现 Recursive C program for lev
  • el-dialog分析

  • 上海AI实验室与商汤科技等发布“书生·浦语”大语言模型

    随着AI大语言模型越来越多地表现出接近人类的智能 面向人类设计的高难度 综合性考试被越来越多地引入对语言模型的智能水平进行评测 OpenAI在其关于GPT 4的技术报告中就主要通过各领域的考试对模型能力进行检验 2023年高考开考 中文大语
  • vue环境配置

    一 安装nvm 介绍 https zhuanlan zhihu com p 38819529 安装包 https github com coreybutler nvm windows releases 注意 安装路径不能有中文或者空格 在安
  • java输入输出的方法

    java输入输出 目录 一 控制台输入输出 二 文件读写 一 控制台输入输出 java控制台的输入输出主要依赖于scanner类 使用Scanner scanner new Scanner System in 获取了控制台输入的字段 其中s
  • 因果系列文章(9)——反事实(下)

    4月4日 新冠病毒全球累计确诊已经突破100万 其中美国已超过24万 4月2日 外交部新闻发言人华春莹在新闻发布会上质问美国 如果当初最先发生疫情的国家是美国 而不是中国 美国会处理的比中国更好吗 我们难以假设那种情况的存在 但是从美国现在
  • 设计模式:Adapter(适配器)--类对象结构型模式

    一 介绍 Adapter 适配器 也叫做包装器 wrapp 在许多时候横夺得类不能够被复用 仅仅是因为将一个类的接口与专业应用得接口不匹配 当一些类的接口互不兼容 这时候就需要适配器 它能将一个类的接口转化为客户希望的另一个接口 Adapt
  • freenas共享指定网络密码不正确_华为手机网络邻居连接(windows10)

    一 打开控制面板 微表键 R 输入control 程序和功能 找不到的可以把查看方式改为大图标 启用或关闭Windows功能 勾选SMB 1 0 CIFS 文件共享支持 需要重启电脑 二 开始菜单 设置 网络和Internet 属性 查看你
  • antd Table组件rowSelection方法的一些坑:table组件多选时,会选中上一页或者下一页的表格同行数据

  • GMT格林威治时间&标准时&北京时间

    格林威治时间 Greenwich Mean Time 英文简写GMT 是国际标准时间 也被称为世界时 生活中最常听 最常用的是北京时间 或东八区时间 的叫法 而世界时区的划分和地理位置相关 全球共分为24个时区 每个时区内又有相应的标准时
  • Java的集中注释及用法,快捷键

    Java一共有三种注释方式 1 单行注释 注释内容 快捷键 注释 ctrl 取消注释 ctrl Eclipse和Idea应该是一样的特殊情况Idea可能不适用 但是Eclipse一定行 2 多行注释 注释内容 快捷键 注释 ctrl shi
  • 用虚拟机玩游戏的方法!! 开3D加速!

    曾经用过一些不同虚拟机结果大多都不支持3D驱动 所以导致虚拟机是不能够玩游戏的 今天给大家带来的是用虚拟机玩游戏的方法 虚拟机软件 VMWare虚拟机 版本最好是在6 0以上 硬件要求 CPU2 4以上 内存在1G以上 512的朋友可以试试
  • dedecms搜索功能实现

    index htm
  • @validate校验中的@NotEmpty、@NotBlank、@NotNull区别

    1 引入的包 jakarta validation api 2 0 2 jar 2 直接看源码上的注释 NotEmpty The annotated element must not be code null nor empty p Sup