metadata - 为什么 Kotlin 在 Kotlin 类文件中保存 MetaData?

标签 metadata kotlin

我们将 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/

相关文章:

regex - 如何使用 FFmpeg 从 Mp3 中提取歌词(USLT 帧)?

syntax - === 运算符在 Kotlin 中的作用是什么?

kotlin 中的 Android ViewModelProviderFactory

maven - 如何将元数据添加到 Maven pom

html - 需要获取HTML5 <video> s和<audio> s的视频标题

amazon-web-services - AWS CloudFormation - Ubuntu Nginx 元数据

spring-boot - 如何模拟测试 Kotlin Spring boot 2 应用程序

android - 什么 native 搜索引擎可用于我的用例?

kotlin - 如何在 kotlin 中安排重复任务?

iphone - 从 iOS 上的视频文件中剥离元数据