比較Java 列舉成員:== 與equals()
使用Java 的枚舉類型時,開發人員經常面臨以下問題:使用相等運算子(==) 或equals() 方法來比較枚舉成員。出現這個問題是因為枚舉被編譯成類,導致底層實現的混亂。
理解 Java 枚舉
Java 枚舉是具有私有建構子和公用靜態成員的類別代表枚舉值。這些成員本質上是常量,無法更改。
比較枚舉成員
== 運算子和 equals() 方法都可以用來比較枚舉成員。 equals() 方法提供了 Java 中比較物件的標準方法,而 == 則比較被比較物件的參考。
技術等價
檢查來源equals() 方法的程式碼顯示它只是遵循 == 運算子。這意味著,從技術上講,這兩種方法對於比較枚舉成員是等效的。
建議方法
但是,通常建議使用 == 運算子來比較枚舉成員。這種方法是:
範例
以下程式碼示範同時使用== 和equals() 來比較枚舉成員:
public enum MyEnum { A, B, C } public static void main(String[] args) { MyEnum a = MyEnum.A; MyEnum b = MyEnum.B; System.out.println(a == b); // false System.out.println(a.equals(b)); // false }
在此在範例中,== 和equals() 都會傳回false,因為a 和b 引用不同的枚舉成員。
以上是Java 枚舉:應該使用 == 還是 equals() 來比較成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!