【Java用法】Spring之@Nullable和@NotNull注释的使用_java @nullable-程序员宅基地

技术标签: spring  java  IntelliJ IDEA  Java基础  后端  

 一、基本用法

  • @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 的一部分,并且不需要打包到最终的应用程序中。

完结!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44299027/article/details/120952448

智能推荐

新手前端微信小程序img图片无法显示问题_微信小程序js引入图片前端不显示-程序员宅基地

文章浏览阅读2.5w次,点赞21次,收藏23次。最近自己在做毕设,是一个微信小程序,虽然自己有一点前端开发经验,以为小程序前端和这个差不多可以直接开撸,但是这两天被一些图片问题烦了好久。这也是自己第一次写博客,实在太生气了,网上也没找到自己想要的结果,所以写下来记录下来,顺便让和我一样错误的人知道咋解决,笑cry,虽然真的很低级的错误。以下是遇到的问题。 1:在开发者工具可以显示图片,手机预览,真机调试却看不到。 2:在最开始的ipho..._微信小程序js引入图片前端不显示

JSON百科全书:学习JSON看这一篇就够了-程序员宅基地

文章浏览阅读2.8k次,点赞10次,收藏51次。JSON 对象包含两个方法:用于解析 JavaScript Object Notation(JSON)的 parse() 方法,以及将对象/值转换为 JSON 字符串的 stringify() 方法。除了这两个方法,JSON 这个对象本身并没有其他作用,也不能被调用或者作为构造函数调用。_json

【电子基础】总结·嵌入式硬件基础_哈佛j80c电源板-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏9次。嵌入式系统硬件基础By 成鹏致远第一章 常用硬件——>嵌入式系统常用的硬件器件,主要包括分立器件、光电半导体、逻辑IC、模拟IC以及存储器共五大类——>分立器件主要有:二极管、三极管、电阻、电容、电感以及场效应管等——>二极管的主要特性是单向导电性——>二极管按其用途可分为:整流二极管、稳压二极管、开关二极管、发光二极管等——>整流二级管是一种将交流电转变为直流电的半导体器件,主要用于各种低频整流_哈佛j80c电源板

组件三大属性,state,props,refs_组件自带的属性-程序员宅基地

文章浏览阅读673次。一,组件实例三大属性(1)state查看状态:在写好的组件实例上有一个属性,state,就代表这个组件的状态。接下来我们写一个有状态的组件:<body> <div id="test"></div> <script type="text/babel"> // 创建组件 class Component extends React.Component { // 初始化,调_组件自带的属性

yii2框架-yii2的组件和服务定位器(四)_yii2 unknown component id: db-程序员宅基地

文章浏览阅读4.4k次,点赞3次,收藏4次。上一节主要是分析了yii2的自动加载函数,下面在分析一下yii2的核心组件与服务定位器。其实yii2的核心组件主要有以下://日志组件'log' => ['class' => 'yii\log\Dispatcher'],//视图组件,这个组件代表视图文件中的$this'view' => ['class' => 'yii\web\View'],//格式化组件,将一些输出按照一_yii2 unknown component id: db

SystemVerilog总结_systemverilog语法-程序员宅基地

文章浏览阅读6.9k次,点赞24次,收藏315次。基于SV绿皮书的systemverilog总结_systemverilog语法

随便推点

hive 窗口函数总结及使用案例_hive 窗口函数的执行顺序-程序员宅基地

文章浏览阅读700次。1. 窗口函数和普通聚合函数的区别聚合函数是将多条记录合并为一条;窗口函数是每条记录都会执行,原来有几条记录最终执行完还是几条聚合函数也可以用于窗口函数:窗口函数在逻辑上的执行顺序是在FROM、JOIN、WHERE、GROUP BY 、HAVING 之后,在ORDER BY、LIMIT、SELECT DISTINCT之前。它执行之前GROUP BY的聚合过程已经完成了,所以不会再产生数据聚合。注:窗口函数是在 WHERE 之后执行的,所以如果 WHERE 子句需要用窗口函数作为条件,需要多套一层子_hive 窗口函数的执行顺序

Windows11 - 使用 sftp连接 CentOS 7,实现文件上传与下载_windows连接sftp-程序员宅基地

文章浏览阅读4.3k次。Windows11 -使用sftp连接CentOs 7,实现文件上传与下载_windows连接sftp

gflags的交叉编译_manually-specified variables were not used by the -程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏9次。gflags版本:gflags 2.2.2目录编译动态库的编译cmakelbw@DESKTOP-LBW22:/mnt/d/ref/gflags-master/_build$ cmake .. -DGFLAGS_NAMESPACE=gflags -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-li._manually-specified variables were not used by the project:

SpringBoot mysql 时区问题总结_servertimezone=gmt+8-程序员宅基地

文章浏览阅读1.6k次。寻找原因后端开发中经常mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空。_servertimezone=gmt+8

5000字超干货,新中国成立70年人口流动迁移的特征与趋势可视化!-程序员宅基地

文章浏览阅读1.2k次。‍‍来源:城市数据派转自:上海数据分析‍‍大家好,我是小z今天给大家分享一篇新中国成立70年人口流动迁移的文章1 改革开放前的人口流动迁移特征改革开放前,我国人口迁移规模较改革开放后而言,..._国内人口迁移数据挖掘与可视化