注:以下仅为个人见解,如有错误,欢迎指出。
前言
kotlin中的静态方法一般通过单例类来实现,但是单例类实际上并不算真正意义上的静态,想要真正的静态方法,可以使用@JvmStatic注解或者定义顶层方法来实现。
使用单例类实现
全部为静态方法时
object ClassName{
}
这就完成了一个单例类的创建,将方法全都写进类中,方法就是静态方法。
仅需要部分方法为静态方法时
class ClassName {
fun doSomething1() {
//dosmething
}
companion object{
fun doSomething2() {
//dosmething
}
fun doSomething3() {
//dosmething
}
}
}
其中doSomething1()
不是静态方法 ,doSomething2()
和doSomething3()
是静态方法。
使用注解实现
class ClassName {
companion object {
@JvmStatic
fun doSomething() {
//dosomething
}
}
}
这样就将doSomething()
定义成了真正的静态方法。
使用顶层方法实现
定义顶层文件,在该文件中定义的方法均为顶层方法,也是真正的静态方法。
fun doSomething() {
//dosmething
}
最后
静态方法一般作为工具类来使用,除了注解方式不常用,其他在kotlin中非常常见。