常用的校验注解之@NotEmpty、@NotBlank、@NotNull的区别

2024-03-15 12:20

本文主要是介绍常用的校验注解之@NotEmpty、@NotBlank、@NotNull的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

@NotEmpty、@NotBlank、@NotNull

  • 1. @NotEmpty
  • 2. @NotBlank
  • 3. @NotNull
  • 4. 区别总结
  • 5. 常用的校验注解

在 Java 中进行数据检验和处理时,注解是一种非常强大和便捷的工具。在数据校验方面,常用的注解包括 @NotEmpty@NotBlank@NotNull。这些注解用于确保输入的数据在处理过程中满足特定的条件,但是它们之间存在一些关键区别。

1. @NotEmpty

@NotEmpty不能为 null,且长度必须大于0,一般用在集合类或数组上。换句话说 ,被标注的字段必须至少包含一个非空字符、元素或项。

public class User {@NotEmptyprivate String username;@NotEmptyprivate List<User> list;
}

在上面的例子中,userName字段被标注为@NotBlank,意味着在验证时,userName必须既不为 null,也不为空字符串。

2. @NotBlank

@NotBlank只适用于字符串类型的字段,不能为 null,且调用 trim() 后,长度必须大于0,既:必须有实际字符。

public class User {@NotBlankprivate String productName;
}

3. @NotNull

@NotNull相较前两者更加简单,它只检查目标字段是否为 null。一般用在 Integer 类型的基本数据类型的非空校验上,而且被其标注的字段可以使用@size@Max@Min对字段数值进行大小的控制。

public class User {@NotNullprivate Long orderId;
}

在上述代码中,orderId 字段被标注为@NotNull,表示在处理时,orderId 不能为 null。

4. 区别总结

  • @NotEmpty:验证字段不为 null,且长度不为零。适用于字符串、集合和数组
  • @NotBlank:验证字段不为 null,长度不为零,且去除两端空格后也不为空。仅适用于字符串。
  • @NotNull:验证字段不为 null。一般用于数字类型。

5. 常用的校验注解

注解说明
@NUll限制只能为 null
@NotNull限制必须不能为 null
@AssertTrue限制必须为 true
@AssertFalse限制必须为 false
@Min( value )限制必须为一个不小于指定值的数字
@Max( value )限制必须为一个不大于指定值的数字
@DecimalMin( value )被限制的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax( value )被限制的元素必须是一个数字,其值必须小于等于指定的最大值
@Size( max, min )限制字符长度必须在 min 到 max 的指定范围内
@Digits( integer, fraction )限制必须为一个小数,且整数部分的位数不能超过 integer、小数部分的位数不能超过 fraction 的在可接受的范围内
@Past被限制的元素(日期类型)必须是一个过去的日期
@Future被限制的元素(日期类型)必须是一个将来的日期
@Pattern( value )限制必须符合指定的正则表达式
@Email被限制的元素值为是电子邮件地址,也可以通过正则表达式和 flag 指定自定义的 email
@Length被限制的字符串的大小必须在指定的范围内
@NotEmpty被限制的字符串必须非空(不为 null 且不为空)
@Range被限制的元素必须在合适的范围内

好事定律:每件事最后都会是好事,如果不是好事,说明还没到最后。

这篇关于常用的校验注解之@NotEmpty、@NotBlank、@NotNull的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811969

相关文章

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

C# Semaphore与SemaphoreSlim区别小结

《C#Semaphore与SemaphoreSlim区别小结》本文主要介绍了C#Semaphore与SemaphoreSlim区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、核心区别概览二、详细对比说明1.跨进程支持2.异步支持(关键区别!)3.性能差异4.API 差

Java中自旋锁与CAS机制的深层关系与区别

《Java中自旋锁与CAS机制的深层关系与区别》CAS算法即比较并替换,是一种实现并发编程时常用到的算法,Java并发包中的很多类都使用了CAS算法,:本文主要介绍Java中自旋锁与CAS机制深层... 目录1. 引言2. 比较并交换 (Compare-and-Swap, CAS) 核心原理2.1 CAS

一文详解Java常用包有哪些

《一文详解Java常用包有哪些》包是Java语言提供的一种确保类名唯一性的机制,是类的一种组织和管理方式、是一组功能相似或相关的类或接口的集合,:本文主要介绍Java常用包有哪些的相关资料,需要的... 目录Java.langjava.utiljava.netjava.iojava.testjava.sql

Spring Boot/Spring MVC核心注解的作用详解

《SpringBoot/SpringMVC核心注解的作用详解》本文详细介绍了SpringBoot和SpringMVC中最常用的15个核心注解,涵盖了请求路由映射、参数绑定、RESTfulAPI、... 目录一、Spring/Spring MVC注解的核心作用二、请求映射与RESTful API注解系列2.1

Springmvc常用的注解代码示例

《Springmvc常用的注解代码示例》本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@Request... 目录一、控制器与请求映射注解二、请求参数绑定注解三、其他常用注解(扩展)四、注解使用注意事项一、控制

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

C# 空值处理运算符??、?. 及其它常用符号

《C#空值处理运算符??、?.及其它常用符号》本文主要介绍了C#空值处理运算符??、?.及其它常用符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、核心运算符:直接解决空值问题1.??空合并运算符2.?.空条件运算符二、辅助运算符:扩展空值处理

Springboot中JWT登录校验及其拦截器实现方法

《Springboot中JWT登录校验及其拦截器实现方法》:本文主要介绍Springboot中JWT登录校验及其拦截器实现方法的相关资料,包括引入Maven坐标、获取Token、JWT拦截器的实现... 目录前言一、JWT是什么?二、实现步骤1.引入Maven坐标2.获取Token3.JWT拦截器的实现4.