我们将 Java 文件转换为 Kotlin 文件,然后编译为类文件。生成的类比原始 Java 类文件大。在 Kotlin 类文件中,我们在每个类中都找到了元数据。为什么 Kotlin 会存储这些元数据?
最佳答案
Kotlin 中代码的某些方面无法用纯 Java 字节码表示(例如,可空性、主构造函数、internal
可见性、lateinit
修饰符、属性委托(delegate)等)。相反,它们被序列化并作为元数据存储在类中。
当您使用 Kotlin 库的 JAR 发行版时,编译器会解析元数据以发现这些 Kotlin 特定属性,以便将该库用作具有所有可用功能的 Kotlin 工件。
在运行时,kotlin-reflect
使用元数据。 ,Kotlin 反射 API,来重构这些属性并通过反射提供对它们的访问。
关于metadata - 为什么 Kotlin 在 Kotlin 类文件中保存 MetaData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45070837/