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