Подтвердить что ты не робот

Класс Kotlin enum в производительности Android

В Java нам говорят строго избегать использования перечислений на Android, потому что они занимают в два раза больше памяти.

Это относится и к enum class в Котлине? Будет ли компилятор Kotlin enum скомпилирован в Java enum?

4b9b3361

Ответ 1

Казалось бы, да.

Я создал это в Котлине:

enum class Thingies {
    Red,
    Green,
    Blue
}

И декомпилировал его с помощью javap -v, и вот заголовок:

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

Нижняя строка: они идентичны, поэтому вам, вероятно, придется обращаться с ними одинаково.

Ответ 2

Они точно такие же, Kotlin Enum - это Java JVM Enum.

Ответ 3

Вы можете наиболее точно использовать перечисления в Android сейчас, они специально обсуждали эту тему в этом видео Google I/O: https://www.youtube.com/watch?v=IrMw7MEgADk (если вы не хотите смотреть все видео целиком затем начните с 11:30 до 14:40).