17 votes

Classe d'énumération Kotlin dans les performances Android

En Java, on nous dit de éviter strictement d'utiliser des énumérations sur Android car elles occupent deux fois plus de mémoire.

Cela s'applique-t-il également à enum class en Kotlin? Est-ce qu'un enum Kotlin sera compilé en un enum Java?

15voto

Todd Points 4949

Il semblerait que oui, en effet.

J'ai créé ceci en Kotlin :

enum class Thingies {
    Red,
    Green,
    Blue
}

Et je l'ai décompilé avec javap -v, et voici l'en-tête :

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

En conclusion : ils sont identiques, donc vous devrez probablement les traiter de la même manière.

4voto

Jayson Minard Points 5925

Ils sont exactement la même chose, un Enum Kotlin est un Enum Java sur JVM.

1voto

Rambo7 Points 101

Vous pouvez certainement utiliser des enums dans Android maintenant, ils ont spécifiquement discuté de ce sujet dans cette vidéo de Google I/O : https://www.youtube.com/watch?v=IrMw7MEgADk (si vous ne voulez pas regarder toute la vidéo, alors commencez vers 11h30 à 14h40).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X