@validate校验中的@NotEmpty、@NotBlank、@NotNull区别

文章介绍了Java中用于数据验证的三个注解:@NotEmpty用于确保元素不为null且非空,支持CharSequence、Collection、Map和Array类型;@NotBlank则要求元素不仅不为null,还需包含至少一个非空白字符,仅适用于CharSequence;@NotNull则简单地确保元素不为null,可应用于任何类型。
摘要由CSDN通过智能技术生成
1、引入的包:jakarta.validation-api-2.0.2.jar

在这里插入图片描述

2、直接看源码上的注释

@NotEmpty
/**
 * The annotated element must not be {@code null} nor empty.
 * <p>
 * Supported types are:
 * <ul>
 * <li>{@code CharSequence} (length of character sequence is evaluated)</li>
 * <li>{@code Collection} (collection size is evaluated)</li>
 * <li>{@code Map} (map size is evaluated)</li>
 * <li>Array (array length is evaluated)</li>
 * </ul>
 *  * @author Emmanuel Bernard
 * @author Hardy Ferentschik
 *  * @since 2.0
 */
@Documented
@Constraint(validatedBy = { })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
public @interface NotEmpty {
	...
}
解释
  • 此注解元素校验必须不为null且不为空
  • 可以修饰的数据类型:
  • CharSequence(字符串)
  • Collection(集合)
  • Map(键值对)
  • Array(数组)
@NotBlank
/**
 * The annotated element must not be {@code null} and must contain at least one
 * non-whitespace character. Accepts {@code CharSequence}.
 *
 * @author Hardy Ferentschik
 * @since 2.0
 *
 * @see Character#isWhitespace(char)
 */
@Documented
@Constraint(validatedBy = { })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
public @interface NotBlank {
	...
}
解释
  • 此注解元素校验必须不为null且必须包含一个不为空的字符串
  • 只可以修饰的数据类型:CharSequence(字符串)
@NotNull
/**
 * The annotated element must not be {@code null}.
 * Accepts any type.
 *
 * @author Emmanuel Bernard
 */
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
@Retention(RUNTIME)
@Repeatable(List.class)
@Documented
@Constraint(validatedBy = { })
public @interface NotNull {
	...
}
解释
  • 此注解元素校验必须不为null
  • 接受任意类型的数据

3、用法示例

    /**
     * 员工ID
     */
    @NotEmpty(message = "员工id不能为空")
    private List<Integer> empIdList;


    /**
     * 客户id
     */
    @NotBlank(message = "公司名称不能为空")
    private String companyName;

    /**
     * 组织id
     */
    @NotNull(message = "组织ID不能为空")
    private String orgId;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值