Kotlin-KFunction3未解析引用

Kotlin-KFunction3未解析引用,kotlin,Kotlin,fooCtor的推断类型为KFunction3 例如,当我尝试显式地将某个东西定义为KFunction3 val fooCtor = ::Foo val fooCtor:KFunction3=::Foo IDE/编译器告诉我,KFunction3是一个未解析的引用 这是为什么我尝试将kotlin reflect添加到我的gradle.build文件中,但没有成功。我尝试通过以下方式重现IntelliJ IDEA 2017.2.6的问题: val fooCtor: KFunction3<

fooCtor
的推断类型为
KFunction3

例如,当我尝试显式地将某个东西定义为
KFunction3

val fooCtor = ::Foo
val fooCtor:KFunction3=::Foo
IDE/编译器告诉我,
KFunction3
是一个未解析的引用


这是为什么我尝试将kotlin reflect添加到我的gradle.build文件中,但没有成功。

我尝试通过以下方式重现IntelliJ IDEA 2017.2.6的问题:

val fooCtor: KFunction3<Int, Int, Int, Foo> = ::Foo

使用Kotlin 1.2.31,无需额外的库。

我已尝试通过以下方式再现IntelliJ IDEA 2017.2.6的问题:

val fooCtor: KFunction3<Int, Int, Int, Foo> = ::Foo

使用Kotlin 1.2.31,无需额外的库。

KFunction3
不是标准库的一部分,您必须手动导入它

class Foo (x: Int, y: Int, z: Int) {}

fun main(args: Array<String>) {
    val ft1 = ::Foo
    val ft2: KFunction3<Int, Int, Int, Foo> = ::Foo
}

这为我解决了您的问题。

通过
KFunction3
不是标准库的一部分,您必须手动导入它

class Foo (x: Int, y: Int, z: Int) {}

fun main(args: Array<String>) {
    val ft1 = ::Foo
    val ft2: KFunction3<Int, Int, Int, Foo> = ::Foo
}

这为我解决了您的问题。

是的,
::Foo
是一个构造函数,因此它返回我也使用构造函数测试过的
Foo
@系列的实例。请参阅更新的答案。是的,
::Foo
是一个构造函数,因此它返回我也使用构造函数测试过的
Foo
@series0ne的实例。请参阅更新的答案。不确定idea为什么不建议导入。这是最好的答案!不知道为什么idea不建议进口。这是最好的答案!