kt的高阶函数不能用手动推断的泛型?


#1
clickFunction(view::jumpKt<MainActivity>)//报错

inline fun View.clickFunction(crossinline click: Function0<*>, isTrue: Boolean = false) {
    if(isTrue) onClick{click()} else setOnClickListener{click()}
}

inline fun <reified A : Activity> View.jumpKt() = activity.jumpKt<A>()

如上所示


#2

大佬召唤术!!! @bennyhuo @vincentlauvlwj


#3

printClass 的泛型参数又没有用,直接去掉不行吗:

fun Any.printClass() {
    this::class.print()
}

#4

这个只是示例,在项目中有这样用的地方


#5

我把示例改了,改成真正遇到的问题了


#6

报了啥错? 函数引用不能有泛型参数?


#7


Not enough information to infer type variable A
The feature “function reference with default value as other type” is disabled Alt+Shift+Enter Alt+Enter Alt+Z

image
Type arguments are not allowed

emmm,论坛回复系统有两个bug:第一次回复别人不会引用到他;删除本楼按钮无效;


#8

image
image.png827x182 14.4 KB

Not enough information to infer type variable A
The feature “function reference with default value as other type” is disabled Alt+Shift+Enter Alt+Enter Alt+Z

image
Type arguments are not allowed


#9

是这样的。函数引用不能有泛型参数。而且这个也没法推断。

不要这么用。


#10

好吧.


京ICP备16022265号-2 Kotlin China 2017 - 2018