Java 互操作
Kotlin 调 Java、Java 调 Kotlin、@JvmStatic/@JvmOverloads
Java 互操作
Kotlin 与 Java 100% 互操作——互相调用、互相继承,无需任何适配。
学完本章你将: 掌握 Kotlin 调 Java、Java 调 Kotlin、@JvmStatic/@JvmOverloads。
Kotlin 调用 Java
kotlin
// Java 类直接用
val list = ArrayList<String>()
list.add("Hello")
list.add("World")
// 注意:Java 返回的是平台类型(可空/非空未知)
val text: String = System.getProperty("java.version")
val nullable: String? = System.getProperty("nonexistent")
Java 调用 Kotlin
java
// Kotlin 文件 → Java 类(文件名 + Kt 后缀)
// File: Utils.kt → UtilsKt
// 顶层函数
UtilsKt.greet("World");
// companion object
User.Companion.create("小明");
常用注解
kotlin
// @JvmStatic——生成真正的 static 方法(Java 可用类名直接调)
class User {
companion object {
@JvmStatic
fun create(name: String) = User(name)
}
}
// @JvmOverloads——为默认参数生成重载方法
@JvmOverloads
fun greet(name: String = "世界") = "Hello, $name!"
// @JvmField——暴露为 public 字段(不用 getter/setter)
class Config {
@JvmField
val version = "1.0"
}