空安全
Kotlin 的关键特性之一是空安全,它在编译期干净利落地处理 null 值。通过可空性声明以及“有值或无值”语义的表达,它使应用更安全,而无需付出 Optional 之类包装器的开销。(Kotlin 允许对可空值使用函数式构造。请参阅这份关于 Kotlin 空安全的详尽指南。)
尽管 Java 的类型系统不支持表达空安全,但 Spring Data API 已使用 JSpecify 注解进行标注。默认情况下,在 Kotlin 中使用的 Java API 类型会被识别为平台类型,对其的空值检查较为宽松。JSpecify 注解为 Kotlin 开发者提供了整个 Spring Data API 的空安全,其优势在于在编译期处理与 null 相关的问题。
有关空安全如何应用于 Spring Data 仓库的详细信息,请参阅仓库方法的空值处理。
备注
泛型类型参数、可变参数和数组元素的可空性尚不支持,但应会在即将发布的版本中提供。