我刚刚开始使用那些 IntelliJ IDEA Java 注释,但我不明白何时应该使用它们,特别是因为 IDEA 在大多数情况下都能够推断它们。
你们遵守某种规则吗?我不希望看到每个参数或字段都用它们注释,代码可能会变得一团糟。
我知道这可以被认为是基于意见的,但我仍然想阅读答案。
@Nullable
和 @NotNull
注释用于指示 IDE 某些内容(参数、属性等)可以(或不能)为 null
。这样它可以帮助您检测可能不正确的代码。
这不是“必须遵循”的规则,而是另一个工具,可帮助开发人员在使用 IDE 时编写更健壮且不易出错的代码。
如果你独自编码,团队很小,你正在一个小项目或任何类似的情况下工作......并且你觉得没有它很舒服,那么就不要使用它,因为代码确实会变得冗长。这并不意味着这对于之前的任何情况都没有用(它实际上也非常有帮助)。
另一方面,如果您认为需要一个额外的工具来帮助您针对不可为“空”的值检测可能失败的代码,或者,例如,您正在编写供第三方使用的 API 并希望使用这个注释而不是代码块内的几个
assert
...然后就可以了。
这一切都是为了评估项目中的优点和缺点,您可以在项目中应用这些注释,并决定这是否会给您带来比它可能导致的“问题”更多的好处。
在公共 API 上使用这些注释可能最有用,因为 IntelliJ IDEA 无法自动推断它们。换句话说,就是与其他开发人员进行沟通。所以公共接口中公共方法的参数和返回类型绝对是
@Nullable
/@NotNull
注解的候选对象。
注释可帮助您检测:@Nullable
可以返回 null 的方法调用。变量(字段、局部变量、 和参数),可以是
。null
注释实际上是一个显式契约 声明:@NotNull
方法不应返回
变量(字段、局部变量、 和参数)无法保存null
值。null
例如,如果您创建一个参数具有
@NotNull
注释的方法,然后使用可能是 null
的参数调用此方法,IntelliJ IDEA 将即时突出显示该问题。
使用
@Nullable
只是声明您的变量或方法可以保存 null
值。