当前位置: 首页 > news >正文

Java Bean Validation 注解:@NotEmpty、@NotBlank 和 @NotNull 的区别

1. 概述

Bean Validation 是 Java 提供的一种对 Java Bean 实例的字段或方法参数进行校验的标准机制。它允许开发者使用注解的方式定义验证逻辑,这些注解可以在类、字段或者方法上声明,并且可以被任何实现了 JSR 303/JSR 349 规范的框架(如 Hibernate Validator)所识别和执行。

2. @NotNull
  • 含义:该注解用于检查一个字段或参数是否为 null。如果字段不是 null,则通过验证。
  • 适用范围
    • 可以应用于任何类型的字段或方法参数。
  • 示例代码
    public class User {@NotNull(message = "Name cannot be null")private String name;// Getter and Setter methods...
    }
    
3. @NotEmpty
  • 含义:该注解用于检查一个字符串或集合类型(如 List, Set, Map)是否为空。对于字符串,它检查是否为 null 或长度为 0;对于集合类型,它检查是否为 null 或大小为 0。
  • 适用范围
    • 只能应用于字符串和集合类型的字段或方法参数。
  • 示例代码
    public class User {@NotEmpty(message = "Email cannot be empty")private String email;// Getter and Setter methods...
    }
    
4. @NotBlank
  • 含义:该注解用于检查一个字符串是否为 null 或仅由空白字符组成(即长度为 0 或只包含空格、制表符等)。如果字符串非空且含有非空白字符,则通过验证。
  • 适用范围
    • 只能应用于字符串类型的字段或方法参数。
  • 示例代码
    public class User {@NotBlank(message = "Password cannot be blank")private String password;// Getter and Setter methods...
    }
    
5. 总结
  • @NotNull:检查任何类型的对象是否为 null
  • @NotEmpty:检查字符串或集合类型的对象是否为 null 或为空。
  • @NotBlank:检查字符串是否为 null 或仅由空白字符组成。
6. 使用建议
  • 当需要验证对象不为 null 时,使用 @NotNull
  • 需要确保字符串或集合类型非空时,使用 @NotEmpty
  • 如果需要确保字符串不仅非空而且含有非空白字符时,使用 @NotBlank
http://www.lryc.cn/news/418404.html

相关文章:

  • Java | Leetcode Java题解之第322题零钱兑换
  • Linux初启征程指南:攻克常见系统指令与权限初理解
  • 第十九节、野猪受伤死亡逻辑动画
  • vue 开发工具 Hbuilder 简介及应用
  • 【杂谈】-MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择
  • 冠豪猪优化算法(CPO)、卷积神经网络(CNN)与支持向量机(SVM)结合的预测模型(CPO-CNN-SVM)及其Python和MATLAB实现
  • 【通信原理】
  • 有序数组的平方(LeetCode)
  • Python配置镜像
  • Python新手错误集锦(PyCharm)
  • CTFHUB-web-RCE-php://input
  • Python网络爬虫核心面试题
  • DSL domain specific language of Kola
  • 【RISC-V设计-05】- RISC-V处理器设计K0A之GPR
  • Linux/C 高级——shell脚本
  • SpringBoot面试题整理(1)
  • LVS原理及实例
  • Spring统一功能处理:拦截器、响应与异常的统一管理
  • 深入理解小程序的渲染机制与性能优化策略
  • Linux:多线程(二.理解pthread_t、线程互斥与同步、基于阻塞队列的生产消费模型)
  • Pandas中`str`对象解析与应用实例
  • C语言典型例题29
  • Docker 常规安装简介
  • 理解张量拼接(torch.cat)
  • 指针基础知识(笔记)
  • [Python学习日记-3] 编程前选择一个好用的编程工具
  • 智能化的Facebook未来:AI如何重塑社交网络的面貌?
  • 安全启动的原理
  • 【ML】pre-train model 是什么如何微调它,如何预训练
  • leetcode代码练习——Java的数据结构(具体使用)