在java中,泛型上界可以使用
class ClassA<T extends InterfaceA & InterfaceB>{}
在kotlin中如何使用
在java中,泛型上界可以使用
class ClassA<T extends InterfaceA & InterfaceB>{}
在kotlin中如何使用
用相似的语法来定义泛型的上界。在泛型类型参数后面使用where
关键字,并列出要实现的接口,就像在Java中使用&
符号一样。
下面是用Kotlin定义一个具有多个接口上界的泛型类的示例:
interface InterfaceA
interface InterfaceB
class ClassA<T> where T : InterfaceA, T : InterfaceB
在这个例子中,ClassA
是一个泛型类,它的类型参数T
必须同时实现InterfaceA
和InterfaceB
接口。
你还可以将类型参数的上界限制放在类声明中,就像在Java中一样:
interface InterfaceA
interface InterfaceB
class ClassA<T>(val value: T) where T : InterfaceA, T : InterfaceB
这个例子中,ClassA
是一个泛型类,它接受一个类型参数T
作为构造函数的参数。类型参数T
的上界限制是同时实现InterfaceA
和InterfaceB
接口。