首页 > 解决方案 > kotlin 可以调用 jvm11 代码吗?如何?

问题描述

Kotlin 生成 jvm8 或 jvm6 代码。考虑以下:

这可能吗?如果是这样,这在引擎盖下是如何工作的?

标签: kotlinjvm

解决方案


这是 JVM 的工作方式,完全不是 Kotlin 特有的。

假设您有两个类Class1Class2并且Class1需要调用Class2. ThenClass1的字节码仅使用Class2其成员的名称和签名。它不知道也不关心Class2是为 Java 5、Java 11 还是 Java 5000 编译的。

Class1字节码说例如“用这些参数调用这个构造Class2函数”。执行此代码时,Class2将加载(如果尚未加载)并将其字节码版本与 JVM 理解的版本进行比较。


推荐阅读