文章指出,Page
类型在 Java 中被定义为一个泛型接口,允许为内容类型指定一个类型参数。在 Kotlin 中,这会导致空安全问题,因为编译器无法推断出内容类型的具体类型。这可能导致运行时错误,因为编译器无法保证内容类型是不会 null 的。
文章建议使用 Kotlin 的协变类型参数来解决这个问题,这将允许编译器推断出内容类型的具体类型并保证它不会 null。
Null Safety
Kotlin 的主要特性之一是 ,它在编译时清楚处理
值。这通过非空声明和语义的表达而使应用程序更加安全,而不需要类似于
的包装器的开销。(Kotlin 允许使用带有可空值的功能结构。请参阅此 ``。)
尽管 Java 并不允许在它的类型系统中表达空安全,但 Spring Data API 使用声明于 包中的 @
工具友好注释进行注释。默认情况下,Kotlin 中使用的 Java API 的类型被识别为 ,对于此类类型,空检查是宽松的。
和 Spring 非空注释为 Kotlin 开发人员提供整个 Spring Data API 的空安全,其优势在于在编译时处理 `` 相关问题。
参阅 Null Handling of Repository Methods 来了解空安全如何应用到 Spring Data 存储库。
你可以通过添加 |
泛型类型参数、可变参数和数组元素的空值能力目前不受支持,但应在即将发布的版本中支持。 |