Kotlin 类 带下划线
Kotlin classes with underscores
请解释一下 class 的目的和含义是什么,例如 StringsKt__StringsKt
(即双 class 名称,中间有一个或多个下划线),类似地,StringsKt__StringsJVMKt
?
字符串不是唯一的例子,还有很多其他的例子。我在查看 .apk.
中 classes.dex
文件的结构时看到了它们
screenshot here
我问是因为我遇到了一种情况,我必须在我的混淆规则中明确说明其中的一些。没有它应用程序崩溃了。
这是一个生成的文件。如果有 多个以相同 JvmName
.
命名的 Kotlin 文件,将生成这样的文件
我们以Strings.kt and 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
来区分
请解释一下 class 的目的和含义是什么,例如 StringsKt__StringsKt
(即双 class 名称,中间有一个或多个下划线),类似地,StringsKt__StringsJVMKt
?
字符串不是唯一的例子,还有很多其他的例子。我在查看 .apk.
中classes.dex
文件的结构时看到了它们
screenshot here
我问是因为我遇到了一种情况,我必须在我的混淆规则中明确说明其中的一些。没有它应用程序崩溃了。
这是一个生成的文件。如果有 多个以相同 JvmName
.
我们以Strings.kt and 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
来区分