第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Android中這種情況下是否應(yīng)該使用枚舉

Android中這種情況下是否應(yīng)該使用枚舉

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

2 回答

?
慕雪6442864

TA貢獻1812條經(jīng)驗 獲得超5個贊

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

TA貢獻1797條經(jīng)驗 獲得超6個贊

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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號