3
 fun serialize(aList: List<Any>)

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

类型不匹配:

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

List 不应该是协变的吗?

如何构造类型签名以匹配编译器的期望List<Comparable<{Symbol & Keyword}>?>

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

4

1 回答 1

6

您必须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 {}
于 2017-10-06T14:57:44.663 回答