Kotlin的伴生对象(companion object)在语法上类似于Java中的静态方法,所以很多人也都是这样用的。本文将向你展示伴生对象的工作方式和在Kotlin中创建静态方法的推荐做法。
伴生对象 Companion Objects
代码一般是这样的:
// 声明
class KCompanion {
companion object{
fun getBongs(nTimes: Int) {
for (i in 1 .. nTimes) {
print("BONG ")
}
}
}
}
// 调用
KCompanion.getBongs()
相当简单对吧!即使伴生对象的成员在其他语言中看起来像是静态成员,在运行时他们仍然是真实对象的成员实例。
我们看看代码编译后发生了什么:
public final class KCompanion {
...
public static final class Companion {
public final void getBongs(int nTimes) {
...
}
}
}
一个额外的 Companion 类 被创建出来了。如何避免创建这个类呢?我们可以使用全局函数来实现我们的需求。
全局函数
创建一个kotlin文件