Kotlin类型不匹配List <Any>和List <Comparable <{com.cognitect.transit.Symbol&com.cognitect.transit.Keyword}>?>

fun serialize(aList: List<Any>) 

当我调用包含符号和关键字的列表序列化,编译器抱怨

类型不匹配:

 Require List<Any> Found: List<Comparable<{Symbol & Keyword}>?> 

不应该列出协变?

我如何构建一个类型签名来匹配编译器期望的内容List<Comparable<{Symbol & Keyword}>?>

编译器期望类型List<Comparable<{Symbol & Keyword}>?>但是这不是有效的kotlin语法

你必须让serialize()接受List<Any?>因为你的Comparable类型是可空的。

 fun serialize(aList: List<Any?>) {} 

如果您希望接受List<Comparable<{Symbol & Keyword}>?> ,则必须使用where-clause来提供多个上限:

 fun <T> serialize(aList: List<Comparable<T>?>) where T: Symbol, T: Keyword {} 
Interesting Posts