我正在尝试在Kotlin中创建函数引用,我的理解是我应该能够在编译时访问生成的KFunctionN
接口,但是我收到{{1}的'Unresolved reference'编译错误}。
例如:
KFunction1<T, R>
我对科特琳的反思是正常的,而且工作良好。有什么想法我想念的吗?
我正在使用Kotlin 1.3.21和IntelliJ 2018.3。
答案 0 :(得分:1)
这看起来像是一个IDE问题,我输入了import kotlin.reflect.KFunction1
,然后编译器错误消失了。
但是,如果您添加一个返回KFunction1
类型的表达式/语句并显式声明该类型,则Intellij会正确导入它。例如;
"\\s+".toRegex()::matches
可以提取为
val kFunction1: KFunction1<@ParameterName(name = "input") CharSequence, Boolean> = "\\s+".toRegex()::matches
答案 1 :(得分:0)
好的,很简单的解决方法-您需要手动添加KFunctionN导入,IntelliJ不会自动解决它。