Kotlin笔记12-标准函数和静态方法-注解@JvmStatic,顶层方法
7.2 标准函数和静态方法
- 静态方法
Java:
public class Util{
public static void doAction(){
System.out.println("do Action);
}
}
序号 | Tips |
1 | 静态方法适合编写一些工具类的功能,其全局通用 |
2 | Kotlin弱化静态方法概念,采用单例类 |
Kotlin单例类:
object
object Util {
fun doAction() {
println("do action")
}
}
如何将类中某一方法变成静态调用
companion object: 在类内部创建一个伴生类
Example:
class Util1{
fun doAction(){
println("do action1")
}
companion object{
fun doAction1(){
println("do action2")
}
}
}
序号 | Tips |
1 | doAction2()定义为伴生类内的实例方法 |
2 | 调用Util.doAction2()实际调用了Util伴生对象的doAction2() |
- 真实的静态(注解和顶层方法)
- 注解(@JvmStatic)
@JvmStatic: Kotlin编译器编译成真正的静态方法
静态方法:
class Util {
fun doAction() {
println("do action1")
}
companion object {
@JvmStatic
fun doAction2 {
println("do action2")
}
}
}
序号 | Tips |
1 | @JvmStatic只能加在单例类或companion object方法上 |
2 | Kotlin,Java方法都可以静态调用 |
- 顶层方法
Example:
fun doSomething() {
println("do something")
}
序号 | Tips |
顶层方法 | 指没有定义在任何类中的方法 |
1 | Kotlin编译器会将所有的顶层方法全部编译成静态方法 |
2 | Java所有类必须定义在类中,没有顶层方法的概念 |
3 | Kotlin编译器会自动创建一个叫HelperKt的Java类,顶层方法以静态方法的形式定义其中 |
4 | Java:可以采用HelperKt.doSomething() |