拡張
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 ジェネリクス型消去 [Oracle] (英語) の回避策を提供し、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 の巧妙な型推論により、構文を短くすることができます。