【Java用法】Spring之@Nullable和@NotNull注释的使用

 一、基本用法

  • @NonNull 注解可以标注在方法、字段、参数之上,表示对应的值不能为空;
  • @Nullable 注解可以标注在方法、字段、参数之上,表示对应的值可以为空;

@Nullable 注解可以使用在方法、属性、参数上,分别表示方法返回值可以为空、属性值可以为空、参数值可以为空。 

如果可以传入 NULL 值,则标记为 @Nullable,如果不可以,则标注为 @NonNull。那么在做一些不安全严谨操作的编码时,这些注释会给我们一些警告。如下是我看 Spring 源码(DelegatingEntityResolver 类)时,发现用到的 @Nullable

以上图片中关于修改的地方是把 Spring 源码里的空行删除了,至于为什么源码能被修改,是因为我把 Spring 源码下载到本地了,方便查看。

二、用法区别

关于 org.springframework.lang.Nullable javax.annotation.Nullable 这两个注解有什么区别?用法有什么区别?

2.1 相同点

org.springframework.lang.Nullablejavax.annotation.Nullable 都是用来表示 Java 中的可空性注解。

2.2 不同点

javax.annotation.Nullable 是 JDK 9 引入的 Java 标准库中的一部分,而 org.springframework.lang.Nullable 是 Spring Framework 提供的,用于兼容不同的 Java 版本。

2.3 使用建议

如果你在使用 Spring Framework,并且你的项目中没有包含对应的 javax.annotation 库,你可能需要使用 org.springframework.lang.Nullable

  1. 如果你正在使用 Java 8 或更早版本,并且想要利用空值注解,可以添加 Spring Framework 的依赖来获取 org.springframework.lang.Nullable。
  2. 如果你正在使用 Java 9 或更新版本,可以直接使用 javax.annotation.Nullable。
  3. 如果你的项目同时需要兼容多个 Java 版本,你可能需要配置你的构建工具(例如 Maven 或 Gradle)来为不同的 Java 版本引入不同的依赖库。

例如,在 Maven 中,你可能需要配置 javax.annotation 的依赖条件,如下:

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.3.2</version>
    <scope>provided</scope>
</dependency>

请注意,javax.annotation 的依赖应该被标记为 provided,因为它通常是 JDK 的一部分,并且不需要打包到最终的应用程序中。

完结!

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

No8g攻城狮

向每一个努力改变现状的你致敬!

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

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

打赏作者

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

抵扣说明:

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

余额充值