Kotlin编译器错误:类型不匹配。必需:CapturedType(out A)找到:A

帕夏·奥莱尼克(Pasha Oleynik)

您能解释一下为什么我会收到此错误吗?

interface A

open class B<T>

class Foo: A

class Item<T : A>(
    val clazz: Class<out A>,
    val b: B<out A>
)

val items = mutableListOf<Item<out A>>(
    Item(
        Foo::class.java,
        B<Foo>()
    )
)

fun <T : Any?> doSomething(
    type: Class<T>?,
    param: B<T>
) {
    // Nothing
}

fun main() {
    doSomething(items[0].clazz, items[0].b) // compiler error on 2nd argument
    // Type mismatch.
    // Required: CapturedType(out A)
    // Found: A
}

doSomething类型的第二个参数B<T>,所以我不明白为什么我不能传递类型的对象B<T>

亚光怪胎

doSomething类型的第二个参数B<T>,所以我不明白为什么我不能传递类型的对象B<T>

但是items[0].b不是类型B<T>,而是类型B<out T>

如果将的第二个参数转换doSomethingB<out T>它将编译

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:类型不匹配;找到:Unit.type必需:单位

来自分类Dev

Scala类型不匹配。找到的类型,必需_ $ 1

来自分类Dev

类型不匹配,找到Int必需的字符串

来自分类Dev

Scala-类型不匹配;找到Int,必需的String

来自分类Dev

类型不匹配; 找到:Int(1)必需:B

来自分类Dev

Scala-类型不匹配;找到Int,必需的String

来自分类Dev

类型不匹配,找到Int必需的字符串

来自分类Dev

不兼容的类型;需要并找到。但找到的是必需的类型

来自分类Dev

意外的“未找到方法”编译器错误

来自分类Dev

Ant中出现“无法找到Javac编译器”错误

来自分类Dev

编译器错误:需要数组,但找到字符串

来自分类Dev

不兼容的类型必需:文件,找到:无效

来自分类Dev

使用scala.math.pow折叠List [Int]时,类型不匹配错误:找到Double,必需为Int

来自分类Dev

Maven如何找到Java编译器?

来自分类Dev

Scala编译器插件,找到注释

来自分类Dev

编译器无法找到给定的路径

来自分类Dev

必需的类型与找到的类型相同

来自分类Dev

找到Scala Spark类型不匹配的单位,必需为rdd.RDD

来自分类Dev

类型不匹配; 找到:列表[Double.type]必需:列表[Double]

来自分类Dev

找到类型不匹配的java.util.List [String]:必需的列表[String]

来自分类Dev

类型不匹配; 找到`Message`,需要`T`

来自分类Dev

不兼容的类型:必需T找到T Android Studio

来自分类Dev

不兼容的类型。必需:T,找到 T。为什么?

来自分类Dev

为何编译器会说“预期语句,但找到类型'<x>'的表达式”?

来自分类Dev

Typescript编译器即使已经安装了Jquery类型定义也无法找到它们

来自分类Dev

Bison Flex编译器返回“ y.tab.h”文件未找到错误

来自分类Dev

Windows / DOS编译器中的“错误:无法找到或加载主类”

来自分类Dev

OCLint 由于无法找到 #import-ed 头文件而报告编译器错误

来自分类Dev

如何找到Eclipse Java编译器(JDT)的版本?

Related 相关文章

  1. 1

    错误:类型不匹配;找到:Unit.type必需:单位

  2. 2

    Scala类型不匹配。找到的类型,必需_ $ 1

  3. 3

    类型不匹配,找到Int必需的字符串

  4. 4

    Scala-类型不匹配;找到Int,必需的String

  5. 5

    类型不匹配; 找到:Int(1)必需:B

  6. 6

    Scala-类型不匹配;找到Int,必需的String

  7. 7

    类型不匹配,找到Int必需的字符串

  8. 8

    不兼容的类型;需要并找到。但找到的是必需的类型

  9. 9

    意外的“未找到方法”编译器错误

  10. 10

    Ant中出现“无法找到Javac编译器”错误

  11. 11

    编译器错误:需要数组,但找到字符串

  12. 12

    不兼容的类型必需:文件,找到:无效

  13. 13

    使用scala.math.pow折叠List [Int]时,类型不匹配错误:找到Double,必需为Int

  14. 14

    Maven如何找到Java编译器?

  15. 15

    Scala编译器插件,找到注释

  16. 16

    编译器无法找到给定的路径

  17. 17

    必需的类型与找到的类型相同

  18. 18

    找到Scala Spark类型不匹配的单位,必需为rdd.RDD

  19. 19

    类型不匹配; 找到:列表[Double.type]必需:列表[Double]

  20. 20

    找到类型不匹配的java.util.List [String]:必需的列表[String]

  21. 21

    类型不匹配; 找到`Message`,需要`T`

  22. 22

    不兼容的类型:必需T找到T Android Studio

  23. 23

    不兼容的类型。必需:T,找到 T。为什么?

  24. 24

    为何编译器会说“预期语句,但找到类型'<x>'的表达式”?

  25. 25

    Typescript编译器即使已经安装了Jquery类型定义也无法找到它们

  26. 26

    Bison Flex编译器返回“ y.tab.h”文件未找到错误

  27. 27

    Windows / DOS编译器中的“错误:无法找到或加载主类”

  28. 28

    OCLint 由于无法找到 #import-ed 头文件而报告编译器错误

  29. 29

    如何找到Eclipse Java编译器(JDT)的版本?

热门标签

归档