web-dev-qa-db-ja.com

AndroidパフォーマンスのKotlin列挙型クラス

Javaでは、Androidで列挙型を使用することは絶対に避けられます。メモリが2倍になるためです。

これはKotlinのenum classにも適用されますか? Kotlin enumはJava enumにコンパイルされますか?

23
Arbitur

そうです、そうです。

これをKotlinで作成しました。

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

結論:それらは同一なので、おそらく同じように扱う必要があります。

21
Todd

これらはまったく同じもので、Kotlin Enum is a Java JVM Enumです。

4
Jayson Minard

Androidnow)で列挙型を確実に使用できます。彼らはこのGoogle I/Oビデオでこのトピックについて具体的に説明しました: https://www.youtube.com/watch?v=IrMw7MEgADk (ビデオ全体を見たくない場合は、11:30 ishから14:40に開始してください)。

1
Rambo7