为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

墨色风雨 2019-04-19 16:13:01
问题背景:我们假设这样一种需求,需要在程序运行中,根据不同的网络请求错误显示不同的错误码(errorCode),有的时候还要把错误信息(errorMsg)记入日志。那么认为errorCode和errorMsg存在一对一的映射,所以自然想到利用一个枚举类型表示:publicclassenum{A("1001","errorMsg1"),B("1002","errorMsg2"),C("1003","errorMsg3"),D("1004","errorMsg4"),...;//属性声明(都是字符串)publicStringerrorCode;publicStringerrorMsg;//构造方法略}我的问题:枚举的开销是比较大的,现在程序需要最大限度节省手机内存还要保证代码的优雅。但是我并不知道对于String保存类型的数据,用不用枚举的差别是否很大?(我的枚举大约会有20项)。如果真的要避免使用枚举,那么如何在保证代码优雅的基础上实现这种需求(期望程序员只需要在某种错误情况下把代表错误的枚举变量保存起来,而不需要关心内部errorCode和errorMsg的映射关系)
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

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

TA贡献1844条经验 获得超8个赞

建议看看的Java枚举的基本使用.
publicenumType{
publicObjectcreate{
...
....
}
你还可以以枚举的类型返回字符串或者其它东西......
可以上网查查java枚举的使用....
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 554 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信