如果枚举不是内存友好类型,那么Android环境中最好的选择是什么。
答案 0 :(得分:8)
如果枚举不是内存友好型
很少有Java和Android专家同意该Google Google员工关于枚举的论点。例如,请参阅Jake Wharton,Bob Lee和Joshua Bloch。
Android环境中最好的替代方案
Android SDK主要使用int
个常量(static final
)。
答案 1 :(得分:2)
如果您有内存约束,请使用静态常量。 以下枚举大约需要1,112个字节
public static enum Things {
THING_1,
THING_2;
};
或者你可以有两个静态int,它将占用128个字节。
public static int THING_1 = 1;
public static int THING_2 = 2;
你的dex文件大小提高了10倍。
另一方面,Enums有自己的优势 - 可读性,可用性,类型安全代码。我只会在特殊的极端情况下担心枚举。
答案 2 :(得分:0)
答案 3 :(得分:0)
我个人会使用public static final
字段。
public static final int CONST_1 = 0;
public static final int CONST_2 = 1;