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

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

比較Java枚舉成員:==或equals()?

比較Java枚舉成員:==或equals()?

翻閱古今 2019-08-05 16:47:54
比較Java枚舉成員:==或equals()?我知道Java枚舉被編譯為具有私有構造函數和一堆公共靜態成員的類。當比較給定枚舉的兩個成員時,我總是使用.equals(),例如public useEnums(SomeEnum a){     if(a.equals(SomeEnum.SOME_ENUM_VALUE))     {         ...     }     ...}但是,我剛剛遇到一些使用equals運算符==而不是.equals()的代碼:public useEnums2(SomeEnum a){     if(a == SomeEnum.SOME_ENUM_VALUE)     {         ...     }     ...}我應該使用哪個運營商?
查看完整描述

3 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

兩者在技術上都是正確的。如果你查看源代碼.equals(),它只是按照==。

==但是,我使用它,因為它將是null安全的。


查看完整回答
反對 回復 2019-08-05
?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

使用==比較兩個枚舉值的作品,因為只有一個每個枚舉常量對象。

另外,==如果您這樣編寫,則實際上不需要使用寫入null安全代碼equals()

public useEnums(SomeEnum a){
    if(SomeEnum.SOME_ENUM_VALUE.equals(a))
    {
        ...
    }
    ...}

這是一種稱為“ 從左邊比較常數”的最佳實踐,你絕對應該遵循。


查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 1057 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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