首页 > Java > java教程 > 我应该在 Java 代码中使用哪种'@NotNull”注释?

我应该在 Java 代码中使用哪种'@NotNull”注释?

Mary-Kate Olsen
发布: 2024-12-15 09:57:15
原创
486 人浏览过

Which `@NotNull` Annotation Should I Use in My Java Code?

为您的 Java 代码选择最佳的 @NotNull 注解

简介

在 Java 开发中,可空性注释在增强代码可读性和利用静态代码分析工具方面发挥着至关重要的作用以防止 NullPointerExceptions。然而,可用注释的丰富性可能令人眼花缭乱,导致难以选择哪个。

比较分析

为了指导您的决定,这里有一个比较几个常用的@NotNull注解:

  • javax.validation.constraints.NotNull: 专为运行时验证而不是静态分析而设计。
  • edu.umd.cs.findbugs .annotations.NonNull: 由 FindBugs 使用(现已弃用)和其后继者 SpotBugs。
  • javax.annotation.Nonnull: 基于 JSR-305,该版本处于非活动状态,但可能受 FindBugs 支持。
  • org.jetbrains .annotations.NotNull: 由 IntelliJ IDEA 用于静态
  • lombok.NonNull: 控制 Project Lombok 中的代码生成。
  • androidx.annotation.NonNull: 标记注释可用于Android.
  • org.eclipse.jdt.annotation.NonNull: 用于 Eclipse 进行静态代码分析。

推荐

自 JSR-305 起,旨在标准化 @NonNull 和@Nullable 注解,已经闲置多年,没有明确的共识。不过,可以采取务实的方法:

语法

为了干净简洁的语法,建议使用 javax.annotation.Nonnull。它是最短的,并且符合避免显式引用第三方工具包的首选风格。

实现

虽然大多数 @NotNull 注释都有一个简单的实现,但 javax .annotation.Nonnull 有一个更长的。然而,它的优点是作为运行时注释,除了编译时检查之外,还允许运行时检查。

使用上下文

注意使用上下文由不同的注释支持。有些包(例如 org.jetbrains.annotations)允许对局部变量进行注释,而其他包则不允许。选择适当的注释时,请考虑您的具体代码和工具链要求。

以上是我应该在 Java 代码中使用哪种'@NotNull”注释?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板