Generics Kotlin无法通过方法引用推断函数的类型

Generics Kotlin无法通过方法引用推断函数的类型,generics,kotlin,types,Generics,Kotlin,Types,为什么在下面的示例中,使用mapTwoKotlin无法推断a的类型 fun <U> mapOne(f: (Int) -> U): U = TODO() fun <U> mapTwo(f: Function<Int, U>): U = TODO() fun <T> mapper(a: T): List<T> = TODO() fun main() { mapOne(::mapper) mapTwo(::mappe

为什么在下面的示例中,使用
mapTwo
Kotlin无法推断
a
的类型

fun <U> mapOne(f: (Int) -> U): U = TODO()
fun <U> mapTwo(f: Function<Int, U>): U = TODO()

fun <T> mapper(a: T): List<T> = TODO()

fun main() {
    mapOne(::mapper)
    mapTwo(::mapper) //won 't compile
}
funmapone(f:(Int)->U:U=TODO()
funmaptwo(f:函数):U=TODO()
乐趣映射器(a:T):List=TODO()
主要内容(){
mapOne(::mapper)
mapTwo(::mapper)//无法编译
}

类型推断不是编译错误的原因
mapTwo(::mapper)
也不会编译,因为
::mapper
具有类型
(T)->列表(
KFunction1
),该类型不可分配给
函数