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



我刚刚开始使用那些IntelliJ IDEA Java注解,但我不明白什么时候应该使用它们,特别是因为IDEA大部分时间都能够推断它们。

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

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

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

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

如果你独自编码,团队很小,你在一个小项目中工作或任何类似情况......没有它你会觉得很舒服,然后不要使用它,因为代码确实变得有些冗长。这并不意味着这对以前的任何情况都没有用(它实际上也非常有用(。

另一方面,如果您认为您需要一个额外的工具来帮助您根据不可"为空"的值检测可能失败的代码,或者,例如,您正在编写一个供第三方使用的 API,并希望使用此注释而不是代码块内的几个assert......那就去吧。

这一切都是关于评估项目中的,您可以在其中应用这些注释,并决定这是否可以为您带来比它可能引起的"问题"更多的好处。

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

@Nullable注释可帮助您检测:

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

@NotNull注释实际上是一个明确的契约 声明:

方法不应返回null变量(字段、局部变量、 和参数(不能保存null值。

例如,如果创建一个参数具有@NotNull注释的方法,然后使用可能null的参数调用此方法,IntelliJ IDEA 将即时突出显示问题。

仅使用@Nullable来声明变量或方法可以保存null值。

最新更新