如何在Kotlin中定义静态扩展方法?这甚至可能吗?我目前有一个扩展方法,如下所示 .
public fun Uber.doMagic(context: Context) {
// ...
}
可以在实例上调用上述扩展名 .
uberInstance.doMagic(context) // Instance method
但是如何使它成为静态方法,如下所示 .
Uber.doMagic(context) // Static or class method
5 回答
要实现
Uber.doMagic(context)
,您可以编写companion object的companion object的扩展名(需要伴随对象声明):这是官方文件说的:
Kotlin static methods
您可以使用Companion对象创建静态方法,如:
然后你可以这样称呼它:
建议你看看this链接 . 正如你在那里看到的那样,你应该在包(文件)的顶层声明方法:
这等于
使用constans一切都是一样的 . 这个宣言
等于
我也非常喜欢在Kotlin中添加静态扩展方法 . 作为一种解决方法,我现在将exntension方法添加到多个类中,而不是在所有类中使用一个静态扩展方法 .