自学内容网 自学内容网

Java 中的 @NotNull、@NotEmpty 和 @NotBlank 的区别


在 Java 编程中,验证输入是很重要的,我们可以通过注解来确保变量符合特定的要求。而 @NotNull@NotEmpty@NotBlank 是常见的三种校验注解,分别用来检查值是否为空,但它们的作用有一些微妙的不同。下面,我们将用最通俗的方式讲解它们的区别,便于理解和应用。


1. @NotNull

  • 含义@NotNull 意味着字段值不能为 null

  • 适用类型:任何对象类型,例如 StringListMap 等。

  • 实际含义:如果一个变量是 null,那么就违反了 @NotNull 的规则。

  • 例子

    @NotNull
    private String username;
    

    上面的代码意味着 username 这个字段不可以是 null,但如果 username 是一个空字符串 "",那也是符合要求的。

总结@NotNull 仅仅检查值是否为 null,不管内容是空还是非空。


2. @NotEmpty

  • 含义@NotEmpty 意味着字段不能为 null,并且不能为空集合或空字符串。

  • 适用类型:集合、字符串等需要既有非 null 值又有一定长度的类型。

  • 实际含义:不仅不能为 null,而且长度必须大于 0(对集合来说,需要至少有一个元素;对字符串来说,不能为空字符串)。

  • 例子

    @NotEmpty
    private String username;
    

    如果 usernamenull 或者是 "",它都不符合 @NotEmpty 的要求。

总结@NotEmpty 用来确保字段不为空对象,也不为空集合或空字符串。


3. @NotBlank

  • 含义@NotBlank 意味着字段不能为 null,且不应该为空白字符串。

  • 适用类型:专门用于字符串。

  • 实际含义:不允许 null 值,不允许空字符串 "",也不允许仅由空格组成的字符串(如 " ")。

  • 例子

    @NotBlank
    private String username;
    

    这里 username 必须有实际的非空内容,比如 "Alice"null""" " 都不符合 @NotBlank 的要求。

总结@NotBlank 不允许字符串是 null、空字符串或仅由空白字符组成。


使用场景小结

  • @NotNull:用于任何对象,确保不为 null。例如,数据库的主键 ID 不允许是 null
  • @NotEmpty:用于集合或字符串,确保不为 null 且长度大于 0。例如,用户至少需要选择一个爱好。
  • @NotBlank:用于字符串,确保有非空白的内容。例如,用户名不允许只输入空格。

小总结

注解是否允许 null是否允许空字符串 ""是否允许空白字符字符串 " "
@NotNull
@NotEmpty
@NotBlank

希望这个简单的总结能帮助你更清楚地选择合适的注解,确保代码中的数据符合预期。

推荐阅读文章


原文地址:https://blog.csdn.net/qq_35971258/article/details/143696615

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!