比較Java 列舉成員:== 或equals()
使用Java 列舉時,會出現一個常見問題,即選擇適當的運算子來用於比較枚舉成員。傳統上,開發人員使用.equals() 方法,如下所示:
public useEnums(SomeEnum a) { if (a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } }
但是,一些範例示範了使用== 運算子進行比較:
public useEnums2(SomeEnum a) { if (a == SomeEnum.SOME_ENUM_VALUE) { ... } }
哪個比較枚舉成員時應該首選這些運算子?
技術等效性和空安全
有趣的是,這兩種方法在技術上都是正確的。 Java 枚舉中 .equals() 的原始程式碼表示它只是委託給 ==。但是,有一個細微的區別:== 還提供 null 安全性。
透過利用 ==,您可以防止枚舉成員比較中潛在的 null 引用。當處理從遺留系統或第三方程式庫繼承的程式碼時,這一方面變得尤其重要,其中偶爾會出現 null 值。
建議
考慮null 的微妙優勢出於安全考慮,並且== 和.equals() 本質上執行相同的比較,因此通常建議在比較Java列舉成員時使用==。這個推薦也符合作者的個人喜好。
以上是比較 Java 枚舉成員:應該使用 == 還是 equals()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!