伪实现:companion object

class Util {

companion object {

fun doStaticAction() {
println("do doStaticAction")
}
}
fun doAction() {
println("do doAction")
}
}

类中定义伴生类:调用Util.doStaticAction()

注解实现@JvmStatic

class Util {

companion object {

@JvmStatic
fun doStaticAction() {
println("do doStaticAction")
}
}
fun doAction() {
println("do doAction")
}
}

@JvmStatic 只能加在单例类与companion object中

顶层方法

Kotlin 编译器会将所有的顶层方法全部编译成静态方法

fun do() {
println("这是顶层方法")
}

Java中如何调用

因为Java中没有顶层方法该概念,所以Java中调用Kotlin中顶层方法方式如下

文件名.方法名

HelperKt.do()