Kotlin生成jvm8或jvm6代码。请考虑以下内容:
这可能吗?如果是这样的话,这是如何运作的?
答案 0 :(得分:1)
这是JVM的工作方式,并不完全针对Kotlin。
假设您有两个类Class1
和Class2
,并且Class1
需要调用Class2
。然后Class1
的字节码仅使用Class2
的名称及其成员的签名。它不知道也不关心Class2
是针对Java 5,Java 11还是Java 5000编译的。
Class1
字节码表示例如“使用这些参数调用此Class2
构造函数”。执行此代码后,将加载Class2
(如果尚未加载),并将其字节码版本与JVM可以理解的版本进行比较。