Generics Require字段在不使用类型参数的情况下实现多个接口

Generics Require字段在不使用类型参数的情况下实现多个接口,generics,kotlin,Generics,Kotlin,我使用类型参数T来强制值成为字符串的可序列化集合 class Foo<T>(val values: T) where T : Collection<String>, T : Serializable 类Foo(val值:T),其中T:Collection,T:Serializable 在没有类型参数的情况下是否可能获得类似的结果? 理想的解决方案如下伪代码所示: class Foo(val values: Collection<String> &

我使用类型参数
T
来强制
成为
字符串的可序列化集合

class Foo<T>(val values: T) where T : Collection<String>, T : Serializable
类Foo(val值:T),其中T:Collection,T:Serializable
在没有类型参数的情况下是否可能获得类似的结果? 理想的解决方案如下伪代码所示:

class Foo(val values: Collection<String> & Serializable)
class Foo(val值:集合和可序列化)

无法指定一个对象必须实现两个接口,但是如果在运行时进行检查,您可以这样做,但问题是它们是在运行时进行的检查,因此在编译时它们看起来是正常的

因此,为了更好地实现这一点,您应该创建实现这两个接口的第三个接口,并接受实现第三个接口的值

接口SerializableCollection:集合,可序列化
类Foo(val值:SerializableCollection)
可能这是这里唯一的解决方案,请参见java中的