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

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

推荐阅读文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔道不误砍柴功

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值