为什么Kotlin 没有static 关键字
在java 的世界中 ,类是一级公民,所有的东西,方法呀,变量啊都必须依赖于类 。但是有的方法和类本身没有关系,例如 JDK 中 的Collections了。
而Kotlin 中函数是一级公民,因此就不需要去创建这些无意义的类, 相反,可以把这些函数接放到代码文件的顶层,不用从属于任何的类。如果你需要从包外访问它,则需要 import 关键字。
顶层函数
顶层函数就是不被 类{ } 保含的函数,因此它处于文件的最顶层。 它就相当于java 的静态函数。
Kotlin 中顶层函数就特别多了。
如常用的,创建集合和 数组 的 XXXof 方法:
public fun <reified @PureReifiable T> arrayOfNulls(size: Int): Array<T?>
/**
* Returns an array containing the specified elements.
*/
public inline fun <reified @PureReifiable T> arrayOf(vararg elements: T): Array<T>
java 如何访问顶层函数
以自定义的顶层函数为例 。在JVM 上会被编译成 静态方法,类名为文件名加Kt 。如果想自定义生成的类名,可以通过 @file:JvmName(“MyKotlinClass”) 注解来生成。这个注解必须放在文件的开头,包名的前面。
package com.example.diva.github.common
fun topTest():String{
return "这是顶层函数"
}
反编译
public final class UtilsKt {
@NotNull
public static final String topTest() {
return "这是顶层函数";
}
}
访问
public class javaFunctionTest {
public static void main(String args[]){
System.out.println(UtilsKt.topTest());
}
}
顶层属性
顶层属性也就是把属性直接放在文件顶层 。访问方式同上。