我想要一个类型变量T,它扩展某个类并实现一个接口。类似的东西:
class Foo <T : Bar implements Baz> { ... }
Kotlin的语法是什么?
答案 0 :(得分:117)
在尖括号内只能指定一个上限。
当存在多个约束时,Kotlin为泛型约束提供不同的语法:
class Foo<T>(val t: T) where T : Bar, T : Baz { ... }
和功能:
fun <T> f(): Foo where T : Bar, T : Baz { ... }
记录在案here。