【发布时间】:2019-02-26 19:34:23
【问题描述】:
- 对于 Android 来说,Kotlin 中的 Enum 类与 Java 一样“昂贵”吗?
- 在 Kotlin 中仍然可以使用
@IntDefs或@StringDefs吗?
当我将 Kotlin Enum 类反编译为 Java 类时,仍然在低级使用 Java Enum,不建议在 Android 开发中使用,这让我想到了这一点。
【问题讨论】:
-
Kotlin 在与 Java 相同的 JVM 上运行并编译为类似的字节码,所以我无法想象 Kotlin 中的枚举与 Java 中的枚举有什么不同。
-
话虽如此,从你的 Android 代码中消除枚举属于微优化的范畴,这意味着除非你的应用程序很大并且你知道内存占用会成为一个问题,否则它是不值得大惊小怪。此外,无论如何,您真正需要做的唯一一件事就是配置 ProGuard 以在编译时将您的枚举转换为整数常量。
-
@Abion47 我不知道 ProGuard 可以做到这一点!