零安全
Kotlin 的主要功能之一是空安全,
干净利落地处理null
值,而不是撞到著名的NullPointerException
在运行时。这通过可空性使应用程序更安全
声明并表达“值或无值”语义,而无需支付包装器的成本,例如Optional
.
(Kotlin 允许使用具有可为空值的函数式结构。请参阅此 Kotlin 空安全综合指南。
尽管 Java 不允许您在其类型系统中表达空安全性,但 Spring Framework
通过在org.springframework.lang
包。
默认情况下,Kotlin 中使用的 Java API 中的类型被识别为平台类型,
对其放宽空检查。Kotlin 对 JSR-305 注释和 Spring 空性注释的支持为 Kotlin 开发人员提供了整个 Spring Framework API 的空安全性,
具有处理的优势null
-相关问题。
Reactor 或 Spring Data 等库提供了空安全 API 来利用此功能。 |
您可以通过添加-Xjsr305
编译器标志,并添加以下内容
选项:-Xjsr305={strict|warn|ignore}
.
对于 kotlin 版本 1.1+,默认行为与-Xjsr305=warn
.
这strict
value 是必需的,才能考虑 Spring Framework API null-safety
在从 Spring API 推断的 Kotlin 类型中,但应该在知道 Spring
API 可空性声明甚至可能在次要版本之间演变,并且更多的检查可能会
将来添加。
尚不支持泛型类型参数、varargs 和数组元素可空性, 但应该在即将发布的版本中。有关最新信息,请参阅此讨论。 |