擴充套件
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 提供了一些擴充套件來利用此功能。這使得 RestTemplate、Spring WebFlux 中的新 WebClient 以及各種其他 API 能夠擁有更好的 Kotlin 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 巧妙的型別推斷允許使用更短的語法。