问题背景:
我们假设这样一种需求,需要在程序运行中,根据不同的网络请求错误显示不同的错误码(errorCode),有的时候还要把错误信息(errorMsg)记入日志。那么认为errorCode和errorMsg存在一对一的映射,所以自然想到利用一个枚举类型表示:
public class enum{
A("1001","errorMsg1"),
B("1002","errorMsg2"),
C("1003","errorMsg3"),
D("1004","errorMsg4"),
...;
//属性声明(都是字符串)
public String errorCode;
public String errorMsg;
//构造方法略
}
我的问题:
枚举的开销是比较大的,现在程序需要最大限度节省手机内存还要保证代码的优雅。
但是我并不知道对于String保存类型的数据,用不用枚举的差别是否很大?(我的枚举大约会有20项)。
如果真的要避免使用枚举,那么如何在保证代码优雅的基础上实现这种需求(期望程序员只需要在某种错误情况下把代表错误的枚举变量保存起来,而不需要关心内部errorCode和errorMsg的映射关系)
这个code其实无所谓,可以是枚举,也可以是hashmap。
hashmap内存代价会不会更大,有什么好的实现方法
搞笑了 者应该用 多个数组来保存
能量化一下吗,比如100条枚举项的情况下,使用枚举会多增加多少内存体积。谢谢。
用数组或hashmap
当枚举(enum)成为静态常量时超过正常两倍以上的内存开销, 在 android 中你需要严格避免使用枚举