Android 从Kotlin中的另一个类访问静态扩展函数?

Android 从Kotlin中的另一个类访问静态扩展函数?,android,kotlin,extension-function,Android,Kotlin,Extension Function,假设我们有以下扩展函数: class Helper { companion object { fun Int.plus(value: String) = Integer.valueOf(value).plus(this) } } 如何从另一个类中的Helper类访问plus扩展函数。有没有一种方法可以让我们做类似的事情,例如: class OtherClass { fun someMethod() { val eight = 7.Helper.Companion.p

假设我们有以下扩展函数:

class Helper {
  companion object {
    fun Int.plus(value: String) = Integer.valueOf(value).plus(this)
  }
}

如何从另一个类中的
Helper
类访问
plus
扩展函数。有没有一种方法可以让我们做类似的事情,例如:

class OtherClass {
  fun someMethod() {
    val eight = 7.Helper.Companion.plus("1")
  }

}像这样声明的扩展是一个,并且只在
Helper
类中可见。如果您需要在该类之外访问它,请将其放在更大的范围内,例如,使其成为顶级函数。或者,如果希望将其保留在类中,可以将其设置为具有两个参数的常规函数


作为附加提示,如果要使用
+
符号,可以将此函数标记为:

operator fun Int.plus(value: String) = Integer.valueOf(value) + this

val x = 2 + "25"

在您的示例中,
Int.plus(value:String)
Helper.Companion
对象的成员函数(它是一个Companion对象或在另一个类中并不重要)。本案例在文档的章节中进行了描述

简而言之,要访问具有两个接收器(类型为
Int
的扩展接收器和类型为
Helper.Companion
的分派接收器)的函数,必须将它们都包含在作用域中

这可以通过多种方式实现:

with(Helper.Companion) {
    239.plus("")
}


另外,将扩展函数放入伴随对象是非常不规则的,也不是惯用的。我很难想象你为什么需要这个。

非常感谢你的回答:)谢谢你花时间回答这个问题
with(Helper.Companion) {
    with(239) {
        plus("")
    }
}