静态变量和静态方法的定义
//Define.kt文件
class Define{
companion object {
val GUIDE_TYPE: String = "GUIDE_TYPE"//定义静态变量
fun open(){//定义静态方法
}
}
}
静态变量和静态方法的使用
kotlin中调用kotlin定义的静态变量和方法
//Test.kt文件
class Test{
fun main(args: Array<String>) {
Define.GUIDE_TYPE//kotlin中使用静态变量
Define.open()//kotlin中使用静态方法
}
}
java中调用kotlin定义的静态变量和方法
//Test.java文件
class Test{
public static void main(String[] args) {
Define.Companion.getGUIDE_TYPE();//java中使用静态变量
Define.Companion.open();//java中使用静态方法
}
}
疑问
怎么样可以使得java中调用kotlin的静态变量和方法像kotlin里那样更简便?
- 注解方式(静态变量@JvmField)(静态方法@JvmStatic):
//Test.kt文件 class Define{ companion object { @JvmField val GUIDE_TYPE: String = "GUIDE_TYPE"//定义静态变量 @JvmStatic fun open(){//定义静态方法 } } }
//Test.java文件 class Test{ public static void main(String[] args) { Define.GUIDE_TYPE;//java中使用静态变量 Define.open();//java中使用静态方法 } }
- 如果是静态变量,可以在前面增加"const"修饰,与注解"@JvmField"效果是一样的:
//Test.kt文件 class Define{ companion object { const val GUIDE_TYPE: String = "GUIDE_TYPE"//定义静态变量 } }