跳到主要内容

空安全

Doubao 中英对照 Null Safety

Kotlin 的关键特性之一是空安全,它在编译期干净利落地处理 null 值。这通过可空性声明以及“有值或无值”语义的表达,使应用更加安全,而无需付出 Optional 之类包装器的代价。(Kotlin 允许对可空值使用函数式结构。请参阅这篇 Kotlin 空安全综合指南。)

备注

自 Spring Framework 7 和 Spring Data 4 起,Spring Data 使用 JSpecify 进行可空性注解。早期基于 JSR-305 的 org.springframework.lang 注解已被弃用,不应再依赖。当前推荐的做法请参阅仓库方法的空值处理。

尽管 Java 的类型系统不允许您表达空安全,但 Spring Data API 已使用 JSpecify 注解标注。默认情况下,在 Kotlin 中使用的 Java API 类型会被识别为平台类型,对其的空值检查是放宽的。JSpecify 注解为 Kotlin 开发者提供了整个 Spring Data API 的空安全,其优势在于在编译期处理与 null 相关的问题。

关于空安全如何应用于 Spring Data 仓库,细节请参阅仓库方法的空值处理。

备注

泛型类型参数、可变参数和数组元素的可空性目前尚不支持,但会在即将到来的版本中提供。