MoM*_*oMo 2 android kotlin extension-function
假设我们有以下扩展函数:
class Helper {
companion object {
fun Int.plus(value: String) = Integer.valueOf(value).plus(this)
}
Run Code Online (Sandbox Code Playgroud)
}
如何plus从Helper另一个类中的类访问扩展函数。有没有办法让我们可以做这样的事情,例如:
class OtherClass {
fun someMethod() {
val eight = 7.Helper.Companion.plus("1")
}
Run Code Online (Sandbox Code Playgroud)
}
在您的示例中Int.plus(value: String)是Helper.Companion对象的成员函数(它是伴随对象还是在另一个类中无关紧要)。这种情况在文档的将扩展声明为成员部分中进行了描述。
简而言之,要访问具有两个接收器(类型为扩展接收器和类型Int为调度接收器Helper.Companion)的函数,您必须将它们都放在作用域中。
这可以通过多种方式实现:
with(Helper.Companion) {
239.plus("")
}
Run Code Online (Sandbox Code Playgroud)
或者
with(Helper.Companion) {
with(239) {
plus("")
}
}
Run Code Online (Sandbox Code Playgroud)
PS 把一个扩展函数放到一个伴生对象中是非常不规则和不习惯的。我很难想象你为什么需要那个。
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |