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

java 中 @NotBlank 和 @NotNull 的区别

在 Java 中,@NotBlank  @NotNull 是用于数据验证的注解(通常来自 Jakarta Bean Validation 规范,如 Hibernate Validator 实现)。它们的核心区别如下:

1. @NotNull

  • 作用:验证对象是否为 null

  • 适用范围任何类型(包括对象、集合、数组、字符串等)。

  • 行为

    • 如果值为 null → 验证失败 ❌

    • 如果值不为 null → 验证通过 ✅(即使字符串是空字符串 "" 或空白字符串 " " 也通过!)

  • 示例

    public class User {@NotNull  // 只要求不为 nullprivate String name;
    }// 测试:
    user.setName(null);      // 验证失败 ❌
    user.setName("");        // 验证通过 ✅
    user.setName("   ");     // 验证通过 ✅
    user.setName("John");    // 验证通过 ✅

2. @NotBlank

  • 作用:验证字符串 非 null、非空字符串、非纯空白字符串

  • 适用范围仅限 String 类型

  • 行为

    • 值必须满足:

      • 不为 null

      • 长度 > 0(即不是 ""

      • 至少包含一个非空白字符(即不能是 " "

    • 底层会调用 String.trim().isEmpty() 进行判断。

  • 示例

    public class User {@NotBlank  // 要求非 null + 非空 + 非空白private String name;
    }// 测试:
    user.setName(null);      // 验证失败 ❌
    user.setName("");        // 验证失败 ❌
    user.setName("   ");     // 验证失败 ❌
    user.setName("John");    // 验证通过 ✅

关键区别总结

特性@NotNull@NotBlank
检查内容仅检查 null检查 null + 空字符串 + 纯空白字符串
适用类型任意类型(对象、集合、字符串等)仅限 String 类型
空字符串 ""✅ 通过❌ 失败
空白字符串 " "✅ 通过❌ 失败

http://www.dtcms.com/a/323282.html

相关文章:

  • 【LLM实战|llamaIndex】llamaIndex介绍和RAG
  • dnSpy:设置断点
  • Docker 容器中运行昇腾(Ascend)AI 环境
  • Vitalik谈以太坊:ETH财库储备策略“有益且有价值”
  • SELinux 入门指南
  • vue+flask大模型写诗诗词推荐与可视化系统
  • 代理人工智能的隐藏威胁
  • 【渲染流水线】[几何阶段]-[图元装配]以UnityURP为例
  • Pandas 分层索引
  • AI 大模型企业级应用落地挑战与解决方案
  • 机器翻译:需要了解的数学基础详解
  • BPMN编辑器技术实现总结AI时代的工作流编辑器
  • Ubuntu系统忘记密码怎么办?
  • 【机器学习深度学习】模型选型:如何根据现有设备选择合适的训练模型
  • 安全合规3--防火墙
  • 知识蒸馏 - 大语言模型知识蒸馏LLM-KD-Trainer 源码分析 KnowledgeDistillationTrainer类
  • 【动态数据源】⭐️@DS注解实现项目中多数据源的配置
  • 【QT】常⽤控件详解(六)多元素控件 QListWidget Table Widget Tree Widget
  • 【Avalonia】无开发者账号使用iOS真机调试跨平台应用
  • C++四种类型转换
  • Tiger任务管理系统-12
  • SpringBoot学习日记(二)
  • Day38 Dataset和Dataloader类
  • Git 核心概念与操作全指南(含工作区、暂存区、版本库详解)
  • VisionMoE本地部署的创新设计:从架构演进到高效实现
  • python的format易混淆的细节
  • Java 实现企业级服务器资源监控系统(含 SSH 执行 + 邮件通知 + Excel 报表)
  • 欧拉公式的意义
  • 202506 电子学会青少年等级考试机器人六级器人理论真题
  • 通用AGI到来,记忆仍需要一点旧颜色