消除Intellij IDEA的Not annotated parameter overrides @NonNullApi parameter警告

这个警告严重吗?

  • 不严重:代码能正常编译、运行。
  • 但有潜在风险 :如果你在方法里把某个参数设为 null 返回,而调用方以为它"肯定不为 null"(因为父类契约是非空),就可能 NPE。
  • 主要是为了工具链友好:比如 Kotlin 调用 Java 时,或者用 SpotBugs / ErrorProne 做静态分析时,能更准确推断空值。

怎么解决?(两种主流做法)

方法一:忽略它(最常见)

绝大多数 Java 项目其实不用管这个警告,尤其是纯 Java 且不用 Kotlin 的项目。

你可以在 IDEA 里:

  • 把光标放在警告处 → 按 Alt + Enter → 选择 "Suppress for method"
  • 或者全局关闭:Settings > Editor > Inspections > JVM languages > @NonNull/@Nullable problems
方法二:显式加上注解

只需要在方法的参数上添加@NonNull注解即可(注意:是org.springframework.lang.NonNull,不要导入错了)

相关推荐
JTaoX4 小时前
pycharm 集成本地 jupyter notebook
ide·jupyter·pycharm
李高钢1 天前
除了 IDE,C#/WPF 开发者每天离不开的 10 个工具
ide·c#·wpf
00后程序员张1 天前
iOS 开发全流程需要哪些工具?编码、调试、构建、发布阶段选择
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
nicehuai1 天前
烧录、查变量、看日志、调驱动:H-FlashScope搞定嵌入式下载调试的瑞士军刀
ide·vscode·visual studio
2501_916008892 天前
Swift多环境配置:利用Scheme实现灵活的多环境管理
开发语言·ide·vscode·ios·个人开发·swift·敏捷流程
New_Horizons6662 天前
Vscode终端激活Conda虚拟环境
ide·vscode·conda
️学习的小王3 天前
Anaconda国内镜像配置与conda常用命令
ide·经验分享·python·conda
雾沉川3 天前
Rust IDE 选型:除 VS Code 之外,RustRover 非商业场景可免费使用
ide·vscode·rust
2501_915918414 天前
iOS 真机调试工具推荐,安装运行、性能分析有哪些工具
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
Albert Edison5 天前
PyCharm 字体大小设置
ide·python·pycharm