Null-safety

我们在 cn.taketoday.lang 包下提供了一些注解,能够帮助你声明 API 和字段的可为空性,可以在一定程度上减少 BUG :

  • @Nullable: 在特定参数、返回值或字段可以为 null

  • @NonNull: 在特定参数、返回值或字段不能为 null(参数、返回值、以及分别适用 @NonNullApi@NonNullFields 的字段)。

  • @NonNullApi: 它是包级别的注解,默认情况下参数和返回值非空。

  • @NonNullFields: 它是包级别的注解,默认字段非空。

框架代码本身利用了这些注解,但它们也可以用于任何基于该框架的 Java 项目,用于声明空安全 API 和可选的空安全字段。 尚不支持泛型类型参数、可变参数和数组元素的可为空声明。

Use cases

IDE(例如 IDEA 或 Eclipse)可以使用这些注解在编码阶段提示你与空安全相关的警告,以避免运行时出现 NullPointerException