ホームページ > Java > &#&チュートリアル > Java Enum: メンバーの比較には == または equals() を使用する必要がありますか?

Java Enum: メンバーの比較には == または equals() を使用する必要がありますか?

Barbara Streisand
リリース: 2024-11-28 11:18:11
オリジナル
362 人が閲覧しました

Java Enums: Should You Use == or equals() to Compare Members?

Java Enum メンバーの比較: == とquals()

Java の enum 型を扱うとき、開発者はよく次のような問題に直面します。等価演算子(==)またはequals()メソッドを使用して列挙型メンバーを比較します。この疑問は、列挙型がクラスにコンパイルされ、基礎となる実装について混乱が生じるために生じます。

Java 列挙型について

Java 列挙型は、プライベート コンストラクターとパブリックの静的メンバーを持つクラスです。 enum 値を表します。これらのメンバーは基本的に定数であり、変更できません。

列挙型メンバーの比較

列挙型メンバーの比較には、== 演算子と equals() メソッドの両方を使用できます。 equals() メソッドは Java でオブジェクトを比較する標準的な方法を提供し、== は比較対象のオブジェクトの参照を比較します。

技術的等価性

ソースの検査equals() メソッドのコードを見ると、このメソッドは == 演算子に従うだけであることがわかります。これは、技術的には、列挙型メンバーの比較ではどちらのアプローチも同等であることを意味します。

推奨アプローチ

ただし、一般に、列挙型メンバーの比較には == 演算子を使用することをお勧めします。メンバー。このアプローチは次のとおりです。

  • Null-Safe: enum メンバーを null と比較する場合、== 演算子は false を返しますが、equals() は NullPointerException をスローする可能性があります。

以下のコード

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート