扩展功能
Kotlin 扩展 提供了通过附加功能扩展现有类的能力。Spring Framework Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定的便利功能。
Spring Framework KDoc API 列出了所有可用的 Kotlin 扩展和 DSL,并提供了文档。
备注
请记住,Kotlin 扩展需要导入后才能使用。这意味着,例如,GenericApplicationContext.registerBean
Kotlin 扩展仅在导入 org.springframework.context.support.registerBean
时可用。也就是说,类似于静态导入,IDE 在大多数情况下应该会自动建议导入。
例如,Kotlin 实化类型参数为 JVM 的泛型类型擦除提供了一种解决方法,而 Spring Framework 提供了一些扩展来利用此功能。这使得 Kotlin API 的 RestTemplate
、Spring WebFlux 的新 WebClient
以及各种其他 API 更加完善。
备注
其他库,如 Reactor 和 Spring Data,也为其 API 提供 Kotlin 扩展,从而整体上提供更好的 Kotlin 开发体验。
要在 Java 中检索 User
对象的列表,通常会编写以下代码:
Flux<User> users = client.get().retrieve().bodyToFlux(User.class)
使用 Kotlin 和 Spring Framework 扩展,你可以这样编写:
val users = client.get().retrieve().bodyToFlux<User>()
// or (both are equivalent)
val users : Flux<User> = client.get().retrieve().bodyToFlux()
与 Java 一样,Kotlin 中的 users
是强类型的,但 Kotlin 的智能类型推断允许使用更简短的语法。