擴展

Kotlin 擴展 提供了擴展現有類別以增加額外功能的能力。Spring Data Kotlin API 使用這些擴展來為現有的 Spring API 添加新的 Kotlin 特有便利性。

請記住,Kotlin 擴展需要導入才能使用。類似於靜態導入,IDE 在大多數情況下應自動建議導入。

例如,Kotlin 具體化類型參數 為 JVM 泛型類型擦除 提供了一個解決方案,而 Spring Data 提供了一些擴展來利用此功能。這允許更好的 Kotlin API。

若要在 Java 中檢索 SWCharacter 物件的列表,您通常會編寫以下內容

Flux<SWCharacter> characters = template.query(SWCharacter.class).inTable("star-wars").all()

使用 Kotlin 和 Spring Data 擴展,您可以改為編寫以下內容

val characters = template.query<SWCharacter>().inTable("star-wars").all()
// or (both are equivalent)
val characters : Flux<SWCharacter> = template.query().inTable("star-wars").all()

與 Java 中一樣,Kotlin 中的 characters 是強型別的,但 Kotlin 的聰明類型推斷允許更簡潔的語法。

Spring Data for Apache Cassandra 提供以下擴展

  • CassandraOperations (包括異步和反應式變體)、CqlOperations (包括異步和反應式變體)、FluentCassandraOperationsReactiveFluentCassandraOperationsCriteriaQuery 的具體化泛型支援。

  • [kotlin.coroutines] ReactiveFluentCassandraOperations 的擴展。