首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >@Nullable注释用法

@Nullable注释用法
EN

Stack Overflow用户
提问于 2012-12-29 05:54:07
回答 4查看 266.8K关注 0票数 396

我在java中看到一些方法声明为:

代码语言:javascript
运行
复制
void foo(@Nullable Object obj)
{ ... }

这里的@Nullable是什么意思?这是否意味着输入可以是null

如果没有注释,输入仍然可以是空的,所以我猜这还不止于此?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-29 05:57:22

它清楚地表明该方法接受空值,并且如果覆盖该方法,也应该接受空值。

它也可以作为像FindBugs这样的代码分析器的一个提示。例如,如果这样的方法在没有先检查null的情况下取消对其参数的引用,FindBugs将发出警告。

票数 417
EN

Stack Overflow用户

发布于 2012-12-29 05:57:47

此注释通常用于消除NullPointerExceptions@Nullable说这个参数可能是null。这种行为的一个很好的例子可以在Google Guice中找到。在这个轻量级的依赖注入框架中,你可以知道这个依赖可能是null。如果您试图传递不带注释的null,框架将拒绝执行它的工作。

更重要的是,@Nullable可以与@NotNull注解一起使用。在这里你可以find一些关于如何正确使用它们的提示。IntelliJ中的代码检查检查注释并帮助调试代码。

票数 91
EN

Stack Overflow用户

发布于 2012-12-29 06:32:45

不同的工具可能对@Nullable的含义有不同的解释。例如,Checker FrameworkFindBugs处理@Nullable differently

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14076296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档