扩展
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 的reified 类型参数为 JVM 泛型类型擦除提供了解决方案,Spring Framework 提供了一些扩展来利用此特性。这使得 Spring WebFlux 的新 WebClient
以及各种其他 API 拥有更好的 Kotlin API RestTemplate
。
其他库,如 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 巧妙的类型推断允许使用更简洁的语法。