亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android中這種情況下是否應該使用枚舉

Android中這種情況下是否應該使用枚舉

躍然一笑 2019-04-10 20:48:40
問題背景:我們假設這樣一種需求,需要在程序運行中,根據不同的網絡請求錯誤顯示不同的錯誤碼(errorCode),有的時候還要把錯誤信息(errorMsg)記入日志。那么認為errorCode和errorMsg存在一對一的映射,所以自然想到利用一個枚舉類型表示:publicclassenum{A("1001","errorMsg1"),B("1002","errorMsg2"),C("1003","errorMsg3"),D("1004","errorMsg4"),...;//屬性聲明(都是字符串)publicStringerrorCode;publicStringerrorMsg;//構造方法略}我的問題:枚舉的開銷是比較大的,現在程序需要最大限度節省手機內存還要保證代碼的優雅。但是我并不知道對于String保存類型的數據,用不用枚舉的差別是否很大?(我的枚舉大約會有20項)。如果真的要避免使用枚舉,那么如何在保證代碼優雅的基礎上實現這種需求(期望程序員只需要在某種錯誤情況下把代表錯誤的枚舉變量保存起來,而不需要關心內部errorCode和errorMsg的映射關系)
查看完整描述

2 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

我的枚舉大約會有20項
在這樣的數量級下討論性能我覺得意義不大.
我覺得一個HashMap或者SparseArray就可以了
比如可以用一個xml或者配置文件保存,App啟動時讀取到內存中
枚舉的開銷是比較大的
為何你覺得枚舉的開銷比較大?
一般說枚舉開銷大是和基本數據類型相比.
你如果只需要一個errorMsg那String會比較小
如果你同時需要errorCode和errorMsg,那應當沒有更小的方案了.
                            
查看完整回答
反對 回復 2019-04-10
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

建議看看的Java枚舉的基本使用.
publicenumType{
publicObjectcreate{
...
....
}
你還可以以枚舉的類型返回字符串或者其它東西......
可以上網查查java枚舉的使用....
                            
查看完整回答
反對 回復 2019-04-10
  • 2 回答
  • 0 關注
  • 413 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號