是Kotlin中的枚举类;“昂贵的”;对于Android和Java一样? Kotlin中的Enum类对于Android和Java来说是否“昂贵” 在Kotlin中是否仍然可以使用@IntDefs或@StringDefs
当我将Kotlin Enum类反编译为Java类时,仍然在低级别使用Java Enum,这不推荐在Android开发中使用,这让我想到了这一点是Kotlin中的枚举类;“昂贵的”;对于Android和Java一样? Kotlin中的Enum类对于Android和Java来说是否“昂贵” 在Kotlin中是否仍然可以使用@IntDefs或@StringDefs,java,android,kotlin,enums,Java,Android,Kotlin,Enums,当我将Kotlin Enum类反编译为Java类时,仍然在低级别使用Java Enum,这不推荐在Android开发中使用,这让我想到了这一点 Kotlin中的枚举类对于Android和Java一样“昂贵”吗?。可以是。我怀疑kotlin是否能够完成java无法完成的任何优化 在Kotlin中仍然可以使用@IntDefs或@StringDefs吗?-不是真的。这是一个两极分化的主题,Android世界中的许多人(包括我)认为使用Enum应该是首选方式。我鼓励您阅读以下链接以获得更好的想法
Kotlin与Java在同一个JVM上运行,并编译成类似的字节码,因此我无法想象Kotlin中的枚举与Java中的枚举的行为有任何不同。也就是说,从Android代码中删除枚举属于微优化范畴,这意味着除非你的应用程序非常大,并且你知道内存占用非常有限这将是一个问题,不值得大惊小怪。此外,您真正需要做的唯一一件事就是配置ProGuard,以便在编译时将枚举转换为整数常量。@Abion47我不知道ProGuard可以做到这一点!我希望“每个实现都是对象的密封类”会更糟糕(要加载并保存在内存中的更多类)。true,我们在任何地方都使用它:)因此..在Kotlin中,在enum和@IntDef/@StringDef之间选择,您更喜欢使用enum,对吗?