开发者社区> 问答> 正文

Android中这种情况下是否应该使用枚举

问题背景:
我们假设这样一种需求,需要在程序运行中,根据不同的网络请求错误显示不同的错误码(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的映射关系)

展开
收起
蛮大人123 2016-02-26 18:18:43 2052 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    在这样的数量级下讨论性能我觉得意义不大.我觉得一个 HashMap 或者 SparseArray 就可以了
    比如可以用一个xml或者配置文件保存,App启动时读取到内存中为何你觉得枚举的开销比较大?一般说枚举开销大是和基本数据类型相比.你如果只需要一个errorMsg 那String会比较小 如果你同时需要 errorCode 和 errorMsg ,那应当没有更小的方案了.

    2019-07-17 18:48:36
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载