In Java we are told to strictly avoid using enums on Android because they take up twice the memory.

这也适用于Kotlin 的enum class人吗?Kotlin enum会被编译成Java enum吗?

推荐答案

It would appear so, yes.

我在Kotlin 创作了这个:

enum class Thingies {
    Red,
    Green,
    Blue
}

And decompiled it with javap -v, and here is the header:

public final class Thingies extends java.lang.Enum<Thingies>
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM

一句话:它们是一样的,所以你可能必须以同样的方式对待它们.

Kotlin相关问答推荐

UByte范围. Min_UTE.. UByte.MAX_UTE不符合预期

导入org.gradle.jvm.toolchain.internal.JavaToolchainFactory未解析引用:Java工具链工厂

在Kotlin中求n个ClosedRange实例相交的最常用方法是什么?

多模块Kotlin项目中的FreeFair

Kotlin 中命名构造函数的惯用方式

kotlin 父类具有依赖于抽象变量的变量

区分函数和扩展

如何规避 Kotlin 的泛型类型差异约束

如何从 var list 或可变列表中获取列表流

Eclipse:无法安装 Kotlin 插件

验证构造函数中的值组合

在 kotlin 中写入 parcer 可空值

如何从定义它们的类外部调用扩展方法?

Foo::class.java 和 Foo::javaClass 有什么区别?

@uncheckedVariance 在 Kotlin 中?

使用主构造函数时使用Kotlin getter/setter

Android Kotlin 创建类实现 Parcelable 在 writeToParcel 方法的 override中给出错误

这是 Kotlin 中的错误还是我遗漏了什么?

具有多个 parameter的 Kotlin 枚举

Kotlin:获取文件的扩展名,例如.txt