为什么Kotlin在Kotlin类文件中保存MetaData?
我们将Java文件转换为Kotlin文件,然后编译为类文件。 生成的类比原始的Java类文件大。 在Kotlin类文件中,我们在每个类中找到元数据。 为什么Kotlin存储这个元数据?
Kotlin中的代码的某些方面不能用纯Java字节码(例如,可空性,主要构造函数, internal
可见性, lateinit
修饰符,属性委托等)来表示。 相反,它们被序列化并作为元数据存储在类中。
当您使用Kotlin库的JAR发行版时,编译器将解析元数据以发现这些Kotlin特定属性,以便将该库用作具有所有可用功能的Kotlin工件。
在运行时, kotlin-reflect
reflection(Kotlin反射API)使用元数据重建这些属性,并通过反射提供对它们的访问。
- 有什么简单的方法来看看Kotlin函数抛出什么异常?
- 在Kotlin中获取数字的因子
- Kotlin / Android – 带有lambda的数据类中的KotlinReflectionInternalError
- Kotlin直接访问android.support.v4.app.Fragment中的Button对象引用
- 在espresso测试中“无法启动活动”
- 使用Android Studio 3.0 beta7版本时,Kotlin注释处理器会导致编译时错误
- 科特林。 如何检查是否可以通过reflection字段?
- RxJava 1.x .zip()不适用于RxJava 2.0
- 什么是最好的方式kotlin空对象的toString()方法返回一个空字符串,而不是“空”