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