fun serialize(aList: List<Any>)
当我使用包含Symbol和Keyword的List调用serialize时,编译器会抱怨
类型不匹配:
Require List<Any>
Found: List<Comparable<{Symbol & Keyword}>?>
列表不应该是协变的吗?
如何构造类型签名以匹配编译器期望的List<Comparable<{Symbol & Keyword}>?>
编译器需要类型List<Comparable<{Symbol & Keyword}>?>
,但这不是有效的kotlin语法
答案 0 :(得分:5)
您必须让serialize()
接受List<Any?>
,因为您的Comparable
类型可以为空。
fun serialize(aList: List<Any?>) {}
如果您希望它接受List<Comparable<{Symbol & Keyword}>?>
,您必须使用where子句来提供多个上限:
fun <T> serialize(aList: List<Comparable<T>?>) where T: Symbol, T: Keyword {}