我刚刚开始使用那些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
值。