先上结论:

  1. @NotEmpty 是一个容易让人产生误解的注解,因为他不是一个 原子注解;
  2. @NotEmpty 注解作用于string的话,很鸡肋,没有 @NotBlank更简单暴力,容易理解;避免出现空格的问题;空格也没有什么具体业务场景;
  3. @NotEmpty 作用于list的话也是很鸡肋,不如:@NotNull + @Size 灵活 容易理解;

** 既然这不是一个原子注解,又容易让人产生歧义,混淆,故废弃,拒绝使用此注解 **

作用于string

1.不能为null

2.若是字符串,则不能是空字符,空格可以:

{
    "name": " "//空格可以
    "name": ""//空字符不可以
}

结论:作用等同于 @NotNull + @Size(min = 1),容易让人产生歧义;难以理解,我们通常直接 对字符串 用 @NotBlank注解更简单直接,@NotBlank的作用:

  • 字符串不能为null

  • 字符串trim()后也不能等于空,即空字符不行,空格也不行:

{
    "name": " "//空格不可以,即trim后不能为空字符
    "name": ""//空字符也不可以
}

作用于集合、数组、map、List

  1. 不能为Null;

  2. size() > 0;

效果就是 @NotNull + @Size(min = 1)

不够灵活,比如它 规定 size 比如大于0,就是说只能从 1开始,若我们想 size允许等于0呢,则无法实现;

不如 @NotNull + @Size 组合来的灵活和直接,容易理解,比如:

  • @NotNull + @Size(min = 0) 就可以 实现 不为null + 允许为空数组[]的效果;
  • @NotNull + @Size(min = 1) 就是 @NotEmpty的效果;
posted on 2024-08-15 11:24  del88  阅读(46)  评论(0编辑  收藏  举报