fun serialize(aList: List<Any>)
当我使用包含符号和关键字的列表调用序列化时,编译器会提示
类型不匹配:
Require List<Any>
Found: List<Comparable<{Symbol & Keyword}>?>
List 不应该是协变的吗?
如何构造类型签名以匹配编译器的期望 List<Comparable<{Symbol & Keyword}>?>
编译器需要类型 List<Comparable<{Symbol & Keyword}>?>
但这不是有效的 kotlin 语法
最佳答案
你必须做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 {}
关于Kotlin 类型不匹配 List<Any> 和 List<Comparable<{com.cognitect.transit.Symbol & com.cognitect.transit.Keyword}>?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46606188/