@NotEmpty、@NotNull、@NotBlank注解解析

源码解析

  • @NotEmpty根据JDK源码注释说明,该注解只能应用于char可读序列(可简单理解为String对象),colleaction,map,array上,因为该注解要求的是对象不为null且size>0,所以只有上述对象是拥有size属性的,而Integer,Long等基础对象包装类没有该属性
/**
 * The annotated element must not be {@code null} nor empty. Supported types are:
 * 
    *
  • {@code CharSequence} (length of character sequence is evaluated)
  • char值得可读序列,CharSequence的实现类有String, StringBuffer, StringBuilder, CharBuffer *
  • {@code Collection} (collection size is evaluated)
  • 集合类 *
  • {@code Map} (map size is evaluated)
  • map散列表 *
  • Array (array length is evaluated)
  • 数组 *
*/
  • @NotNull,表示不能为null,但可以为empty,与@NotEmpty注解相比是少了size属性,所以"Accepts any type"可以接受任何类型对象
/**
 * The annotated element must not be {@code null}.
 * Accepts any type.
 */
  • @NotBlank,"Accepts {@code CharSequence}"表明只应用于char值可读序列,则可以简单理解为只用于String,且不能为null,"non-whitespace"表示不能是空白字符,所以校验字符串是调用trim()方法之后的字符串长度大于0
/**
 * The annotated element must not be {@code null} and must contain at least one
 * non-whitespace character. Accepts {@code CharSequence}.
 */

你可能感兴趣的:(@NotEmpty、@NotNull、@NotBlank注解解析)