无法引用随播对象方法

我有以下代码:

fun process(call: () -> Int) { } fun aa() = 5 class A { companion object Factory { fun bb() = 6 } } fun test() { process(::aa) // OK process(::A.bb) // Overload resolution ambiguity } 

当我尝试调用process(::A.bb) ,出现以下错误:

 Error:Overload resolution ambiguity: public constructor A() defined in ru.netimen.hitch_hikingstats.A public companion object Factory defined in ru.netimen.hitch_hikingstats.A 

有什么方法可以引用伴侣对象方法吗?

One Solution collect form web for “无法引用随播对象方法”

从句法上来说,它是A.Factory:bb但它不起作用。 首先, bbA.Factory.() -> Int while () -> Int是必需的。

其次,像Kotlin编译器说的那样,目前不支持对对象成员的可调用引用。 以下是所有可调用成员任务的父任务: https : //youtrack.jetbrains.com/issue/KT-1183 。

  • Kotlin - 混淆的属性名称
  • Kotlin + Dagger 2:Dagger *文件不会生成
  • 在Android Studio中将文件(使用Git进行跟踪)从Java转换为Kotlin
  • 为什么Kotlin使用“val”这个词来代表常量?
  • 在构造函数中调用类的方法作为默认参数
  • kotlin.TypeCastException:null不能转换为非空类型com.midsizemango.databasekotlin.Note
  • 如何使用Intent Anko的调用包装?
  • Android(Kotlin)代码覆盖率异常
  • 如何将表达式转换为在Kotlin中的时间
  • 在添加/替换片段中的任何代码改进
  • 无法使用Kotlin访问EditText或其他UI组件
  • Kotlin language will be the best programming language for Android.