伪实现: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()