何时使用 @NotNull 和 @Nullable IntelliJ 注释?

问题描述 投票:0回答:3

我刚刚开始使用那些 IntelliJ IDEA Java 注释,但我不明白何时应该使用它们,特别是因为 IDEA 在大多数情况下都能够推断它们。

你们遵守某种规则吗?我不希望看到每个参数或字段都用它们注释,代码可能会变得一团糟。

我知道这可以被认为是基于意见的,但我仍然想阅读答案。

java intellij-idea annotations
3个回答
13
投票

@Nullable
@NotNull
注释用于指示 IDE 某些内容(参数、属性等)可以(或不能)为
null
。这样它可以帮助您检测可能不正确的代码。

这不是“必须遵循”的规则,而是另一个工具,可帮助开发人员在使用 IDE 时编写更健壮且不易出错的代码

如果你独自编码,团队很小,你正在一个小项目或任何类似的情况下工作......并且你觉得没有它很舒服,那么就不要使用它,因为代码确实会变得冗长。这并不意味着这对于之前的任何情况都没有用(它实际上也非常有帮助)。

另一方面,如果您认为需要一个额外的工具来帮助您针对不可为“空”的值检测可能失败的代码,或者,例如,您正在编写供第三方使用的 API 并希望使用这个注释而不是代码块内的几个

assert
...然后就可以了。

这一切都是为了评估项目中的优点缺点,您可以在项目中应用这些注释,并决定这是否会给您带来比它可能导致的“问题”更多的好处。


6
投票

在公共 API 上使用这些注释可能最有用,因为 IntelliJ IDEA 无法自动推断它们。换句话说,就是与其他开发人员进行沟通。所以公共接口中公共方法的参数和返回类型绝对是

@Nullable
/
@NotNull
注解的候选对象。


5
投票

@Nullable
注释可帮助您检测:

可以返回 null 的方法调用。变量(字段、局部变量、 和参数),可以是

null

@NotNull
注释实际上是一个显式契约 声明:

方法不应返回

null
变量(字段、局部变量、 和参数)无法保存
null
值。

例如,如果您创建一个参数具有

@NotNull
注释的方法,然后使用可能是
null
的参数调用此方法,IntelliJ IDEA 将即时突出显示该问题。

使用

@Nullable
只是声明您的变量或方法可以保存
null
值。

© www.soinside.com 2019 - 2024. All rights reserved.