Type mismatch. Required: Nothing Found: T

来源:9-3 案例:为数据类实现 DeepCopy

哎呦不错aa

2023-03-13

fun <T:Any>T.deepCopy():T{
  ...
    val value = (this::class).memberProperties.first{it.name == parameters.name}.get(this)
  ...  
}

这里面的get方法 receiver 为什么是Nothing呢?
已知:this::class 这里是协变 KClass, get 是逆变点,以及星投影中型变的转换规则。

写回答

1回答

bennyhuo

2023-03-13

是说 get 的参数是吗?out T 在参数位置,也就是逆变点,所以就成了Nothing。
1
0

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程