我刚刚开始使用这些IntelliJ IDEA Java批注,但是我不知道何时应该使用它们,尤其是因为IDEA能够在大多数时候进行推断。
你们遵循某种规则吗?我不想看到每个参数或字段都用它们注释,代码可能会变得一团糟。
我了解这可以认为是基于意见的,但是我仍然想阅读答案。
答案 0 :(得分:3)
在公共API上使用这些注释可能是最有用的,在IntelliJ IDEA不能自动推断出这些注释的地方。换句话说,要与其他开发人员进行交流。因此,公共接口中公共方法的参数和返回类型绝对是@Nullable
/ @NotNull
批注的候选对象。
答案 1 :(得分:2)
@Nullable
注释可帮助您检测:可以返回null的方法调用。变量(字段,局部变量, 和参数),可以是
null
。
@NotNull
注释实际上是一个明确的合同 声明:方法不应返回
null
变量(字段,局部变量, 和参数)不能包含null
值。
例如,如果您创建一个方法,该方法的参数具有 @NotNull
批注,然后使用可能是null
的参数调用此方法,则IntelliJ IDEA会即时指出问题所在。
使用@Nullable
只是声明您的变量或方法可以包含null
值。
答案 2 :(得分:2)
正如其他人所提到的,these annotations用于指示IDE某些东西(参数,属性等)可以(或不能)为null
。这样可以帮助您检测可能不正确的代码。
这不是“必须遵循”的规则,而是另一个工具,可帮助开发人员在使用IDE时编写更健壮,更不易出错的代码。>
如果您独自编写代码,团队规模很小,您正在从事小型项目或任何类似的情况...如果没有它,您会感到很自在,那么请不要使用它,因为这确实使代码变得不知何故。这并不意味着这对以前的任何情况都没有用(实际上也很有用)。
另一方面,如果您认为您需要一个额外的工具来帮助您针对“非空”值检测可能失败的代码,或者例如,您正在编码要供第三方使用的API,使用此注释而不是代码块内的几个assert
...然后继续。
这完全是在项目中评估优点和缺点,您可以在其中应用这些注释,并确定这是否比“问题”能给您带来更多的好处原因。