son*_*h98 3 type-mismatch covariant kotlin
fun serialize(aList: List<Any>)
Run Code Online (Sandbox Code Playgroud)
当我使用包含Symbol和Keyword的List调用serialize时,编译器会抱怨
类型不匹配:
Require List<Any>
Found: List<Comparable<{Symbol & Keyword}>?>
Run Code Online (Sandbox Code Playgroud)
列表不应该是协变的吗?
如何构造类型签名以匹配编译器期望的内容 List<Comparable<{Symbol & Keyword}>?>
编译器需要类型,List<Comparable<{Symbol & Keyword}>?>
但这不是有效的kotlin语法
你必须要serialize()
接受List<Any?>
,而不是因为你的Comparable
类型可为空.
fun serialize(aList: List<Any?>) {}
Run Code Online (Sandbox Code Playgroud)
如果你想要它接受List<Comparable<{Symbol & Keyword}>?>
,你必须使用where子句来提供多个上界:
fun <T> serialize(aList: List<Comparable<T>?>) where T: Symbol, T: Keyword {}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
442 次 |
最近记录: |