@NotNull、@NotEmpty 和 @NotBlank 区别

@NotNull、@NotEmpty 和 @NotBlank 是 Java Bean Validation (JSR 380)

规范中定义的注解,通常用于验证对象的属性是否满足特定的条件。这些注解常用于后端验证,确保接收到的数据符合预期。

@NotNull

用途:验证一个对象是否不为null。

注意:它只能验证对象本身是否为null,而不能验证对象内部的内容是否为空。例如,对于一个字符串,@NotNull

只能确保这个字符串对象不是null,但无法确保字符串内容不是空字符串或仅包含空白字符。

@NotEmpty

用途:验证集合(如 List、Set、Map、数组等)是否非空,或者字符串是否非空(即字符串长度大于0)。

注意:对于字符串,@NotEmpty

会检查字符串长度是否大于0,但不会检查字符串是否仅包含空白字符。如果要检查字符串是否不仅非空,而且不包含仅空白字符,应使用

@NotBlank。

@NotBlank

用途:验证字符串是否不仅非空,而且至少包含一个非空白字符。 注意:@NotBlank

仅适用于字符串类型,它会检查字符串是否既非null,也非空字符串,同时至少包含一个非空白字符。 这些注解通常与 Hibernate

Validator 或其他 Bean Validation 实现一起使用,以在运行时自动验证对象的属性。如果验证失败,将抛出

ConstraintViolationException 异常,其中包含有关验证失败的详细信息。

使用这些注解可以提高代码的健壮性,减少因无效或恶意输入而导致的问题。同时,它们也有助于简化后端验证逻辑,使代码更加清晰和易于维护。

相关推荐
别动我齐刘海2 分钟前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
code2cat1 小时前
Java进阶篇之AtomicLongFieldUpdater:把累计额度留在对象字段中
java·cas·并发编程
WeiXin_DZbishe1 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
泡茶喝茶写代码1 小时前
A股量化数据工程:从 REST 接口到策略信号(第 18 篇):放量缩量异动扫描
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
wewowilling2 小时前
认识微服务
java·运维·微服务·springcloud
代码什么用2 小时前
Java Web 7-10
java·servlet
蜗牛互联网4 小时前
GPT-6 与 Intelligent UI:从回答到可审计操作的产品迁移
java·人工智能·后端
SL_staff4 小时前
运维救火实录:钉钉考勤API变更引发工资计算异常,我们用JVS-Logic可视化逻辑引擎实现分钟级热修复
java·mysql·全栈
SunnyDays10114 小时前
Java 查找并高亮 Word 文字:精确查找及正则表达式模糊查找
java·查找文字·word 文档·高亮文字·正则匹配查找·模糊查找