Java 互操作性2024 年 8 月 29 日 | 5 分钟阅读 Kotlin 代码与 Java 代码完全兼容。现有的 Java 代码可以很容易地从 Kotlin 代码中调用,Kotlin 代码也可以用正常的方式从 Java 代码中调用。 从 Kotlin 调用 Java 代码从 Kotlin 文件调用 Java void 方法当从 Kotlin 调用 Java 代码,且其返回类型为 void 时,它将在 Kotlin 文件中返回 Unit。如果有人想要返回值,它将被 Kotlin 编译器赋值给 Kotlin 文件并返回 Unit。 例如 MyKotlinFile.kt MyJavaClass.java 输出 printing inside Java class :15 printing sum inside Kotlin file: kotlin.Unit 从 Kotlin 文件调用 Java int 方法当从 Kotlin 文件调用 Java 代码的 int 类型或其他类型(而不是 void)时,它将返回相同类型的结果。 例如,从 Kotlin 文件调用 Java 类的 area() 方法将返回 int 类型的结果。 MyKotlinFile.kt MyJavaClass.java 输出 printing area from java insideKotlinfile: 12 Kotlin 代码调用位于包中的 Java 类如果我们想从 Kotlin 文件中调用 Java 代码,并且两者都位于不同的包中,则需要在 Kotlin 文件中导入包含 Java 类的包名。 例如,一个 Java 类MyJavaClass.java 位于包 myjavapackageand 中,一个 Kotlin 文件 MyKotlinFile.kt 位于 mykotlinpackage 包中。 在这种情况下,从 Kotlin 文件调用 Java 代码需要在 Kotlin 文件中导入myjavapackage.MyJavaClass。 MyKotlinFile.kt MyJavaClass.java 输出 printing area from java inside Kotlin file: 12 Kotlin 代码访问 Java getter 和 setter由于 Kotlin 与 Java 完全互操作,我们可以访问 Java 类(或 POJO 类)的 getter 和 setter 功能。 例如,在 Java 类 MyJava.java 中创建具有属性 firstName 和 lastName 的 getter 和 setter 方法。 通过在 Kotlin 文件中创建 MyJava.java 的对象,可以从 Kotlin 文件 MyKotlin.kt 访问这些属性。 MyJava.java MyKotlin.kt 输出 accessing value using property: Arjun accessing value using property: Kumar accessing value using method: Arjun accessing value using method: Kumar Kotlin 代码访问 Java 数组我们可以简单地从 Kotlin 文件调用 Java 类方法,该方法将数组作为参数。 例如,在 Java 类 MyJava.java 中创建方法 sumValue(),该方法将数组元素作为参数,计算加法并返回结果。 通过传递数组作为参数,可以从 Kotlin 文件 MyKotlin.kt 调用此方法。 MyJava.java MyKotlin.kt 输出 sum of array element is 15 Kotlin 代码访问 Java Varargs在 Java varargs 功能中,我们可以将任意数量的参数传递给一个方法。 Java varargs 参数是使用省略号定义的,即数据类型后的三个点 (...)。 使用 varargs 参数时,应注意以下几点
当从 Kotlin 访问 Java varargs 时,我们需要使用 spread 运算符 * 来传递数组。 让我们看一个例子,其中 Java 方法使用 int 类型的 varargs,该 varargs 从 Kotlin 文件调用。 MyJava.java MyKotlin.kt 输出 0 1 2 3 让我们看另一个例子,该示例在 Java 方法中使用两个参数,分别作为 String 类型和 int 类型 varargs 的参数,并从 Kotlin 文件调用。 MyJava.java MyKotlin.kt 输出 string is hello 0 1 2 3 Kotlin 和 Java 映射类型Kotlin 和 Java 类型以不同的方式映射,但它们映射到相应的类型。 这些类型的映射仅在编译时有效,运行时保持不变。 Java 的原始类型与相应的 Kotlin 类型
Java 的非原始类型与相应的 Kotlin 类型
Java 的 boxed 原始类型与相应的可空 Kotlin 类型
Java 的集合类型与相应的只读或可变 Kotlin 类型
下一主题从 Java 调用 Kotlin |
我们请求您订阅我们的新闻通讯以获取最新更新。