Android では Enum 使っちゃだめって先生は教えてくれなかった

だめなんですね。今 iOS と Android を両方同時に書いていて、 Android 側にほとんど Enum が出てこないので不思議に思っていました。

Manage Your App’s Memory | Android Developers

For example, enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android.


公式の動画見ても、1個の Enum で 1K 使っちゃったりしてる!

必要ならば @IntDef とか @Retention とか使ってコンパイラに仕事させるのか。 Java って感じだ!

public abstract class ActionBar {
// Define the list of accepted constants and declare the NavigationMode annotation
public @interface NavigationMode {}

// Declare the constants
public static final int NAVIGATION_MODE_STANDARD = 0;
public static final int NAVIGATION_MODE_LIST = 1;
public static final int NAVIGATION_MODE_TABS = 2;

// Decorate the target methods with the annotation
public abstract int getNavigationMode();

// Attach the annotation
public abstract void setNavigationMode(@NavigationMode int mode);