小编典典

Kotlin 中的静态扩展方法

all

如何在 Kotlin 中定义静态扩展方法?这甚至可能吗?我目前有一个扩展方法,如下所示。

public fun Uber.doMagic(context: Context) {
    // ...
}

可以在实例上调用上述扩展。

uberInstance.doMagic(context) // Instance method

但是我如何使它成为如下所示的静态方法。

Uber.doMagic(context)         // Static or class method

阅读 40

收藏
2022-08-24

共1个答案

小编典典

要实现Uber.doMagic(context),可以对伴生对象编写扩展(需要Uber伴生对象声明):

class Uber {
    companion object {}
}

fun Uber.Companion.doMagic(context: Context) { }
2022-08-24