请解释一下像StringsKt__StringsKt
这样的课程的目的和含义是什么(即两个类名称之间有一个或多个下划线),同样,StringsKt__StringsJVMKt
?
字符串不是唯一的例子,还有很多其他的例子。在查看我的.apk中的classes.dex
文件的结构时,我看到了它们。
我问,因为我遇到了一种情况,我必须在我的计划规则中明确说明其中一些。该应用程序崩溃没有它。
这是一个生成的文件。如果有几个Kotlin文件用相同的JvmName
命名,那么将生成这样的文件。
我们以Strings.kt和StringNumberConversions.kt为例:
// StringNumberConversions.kt
@file:kotlin.jvm.JvmMultifileClass
@file:kotlin.jvm.JvmName("StringsKt")
...
// Strings.kt
@file:kotlin.jvm.JvmMultifileClass
@file:kotlin.jvm.JvmName("StringsKt")
...
它们都有@file:kotlin.jvm.JvmName("StringsKt")
,所以生成StringsKt
和StringsKt__StringNumberConversionsKt
来区分它们。