Java Enum メンバーの比較: == とquals()
Java の enum 型を扱うとき、開発者はよく次のような問題に直面します。等価演算子(==)またはequals()メソッドを使用して列挙型メンバーを比較します。この疑問は、列挙型がクラスにコンパイルされ、基礎となる実装について混乱が生じるために生じます。
Java 列挙型について
Java 列挙型は、プライベート コンストラクターとパブリックの静的メンバーを持つクラスです。 enum 値を表します。これらのメンバーは基本的に定数であり、変更できません。
列挙型メンバーの比較
列挙型メンバーの比較には、== 演算子と equals() メソッドの両方を使用できます。 equals() メソッドは Java でオブジェクトを比較する標準的な方法を提供し、== は比較対象のオブジェクトの参照を比較します。
技術的等価性
ソースの検査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 }
この例では、a と b が異なる enum メンバーを参照しているため、== とquals() の両方が false を返します。
以上がJava Enum: メンバーの比較には == または equals() を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。