【IDEA教程】IDEA 注释 @Nullable 和 @NotNull

@Nullable
和@NotNull
注释让您检查变量、参数或返回值的可空性。它们帮助您控制整个方法层次结构中的合约,如果 IntelliJ IDEA 发现合约被违反,它将报告检测到的问题,并指出NullPointerException
可能发生的代码。
例如,如果您创建一个参数具有@NotNull
注释的方法,然后使用可能为 null 的参数调用此方法,IntelliJ IDEA 将即时突出显示问题。
检查由常量条件和异常以及@NotNull/@Nullable 问题检查完成。您可以在“设置/首选项” Ctrl+Alt+S对话框中配置这些检查的工作方式。转到编辑器 | 检查 | 爪哇 | 可能的错误。
当您编译您的项目时,IDE 会将断言添加到使用注解进行@NotNull
注解的所有方法和参数。如果在预期的代码中传递 null,则断言将失败@NotNull
。您可以禁用此选项并在“设置/首选项”对话框中配置注释列表Ctrl+Alt+S。转到构建、执行、部署 | 编译器。
@Nullable
@Nullable
注释可帮助您检测:
- 可以返回 null 的方法调用
- 变量(字段、局部变量和参数),可以为空
@Nullable`在父方法中带有注释的方法可以在子类方法中具有`@Nullable`或注释。`@NotNull
@Nullable
父方法中参数的注解需要子@Nullable
类方法参数中的注解。
@NotNull
注释实际上是一个明确的@NotNull
合同,声明:
- 方法不应返回 null
- 变量(字段、局部变量和参数)不能包含空值
如果违反这些合同,IntelliJ IDEA 会发出警告。
@NotNull
父方法的注解需要子@NotNull
类方法的注解。
@NotNull
在父方法中带有参数注释的方法可以在子类方法参数中具有或@Nullable
注释@NotNull
(或没有注释)。
如果@NotNull
有_TYPE_USE_
目标,它将应用于数组元素类型,而不是数组类型本身。要使用注解来注解数组类型TYPE_USE
,请使用byte @NotNull [] bytes
语法。