@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 异常,其中包含有关验证失败的详细信息。

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

相关推荐
xiaoyustudiowww6 分钟前
fetch异步简单版本(Tomcat 9)
java·前端·tomcat
隐退山林10 分钟前
JavaEE:多线程初阶(一)
java·开发语言·jvm
最贪吃的虎16 分钟前
Redis其实并不是线程安全的
java·开发语言·数据库·redis·后端·缓存·lua
一勺菠萝丶18 分钟前
Java 后端想学 Vue,又想写浏览器插件?
java·前端·vue.js
xie_pin_an19 分钟前
C++ 类和对象全解析:从基础语法到高级特性
java·jvm·c++
Tao____21 分钟前
企业级物联网平台
java·网络·物联网·mqtt·网络协议
山峰哥22 分钟前
数据库工程与SQL调优实战:从原理到案例的深度解析
java·数据库·sql·oracle·性能优化·编辑器
kaico201823 分钟前
远程调用组件openfeign
java·spring cloud
SunnyDays101124 分钟前
如何使用 JAVA 将 PDF 转换为 PPT:完整指南
java·开发语言·pdf转ppt
qq_124987075324 分钟前
基于springboot归家租房小程序的设计与实现(源码+论文+部署+安装)
java·大数据·spring boot·后端·小程序·毕业设计·计算机毕业设计