「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java Enum メンバーの比較: == を使用するか、equals() を使用する必要がありますか?

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

2024 年 11 月 21 日に公開
ブラウズ:904

Comparing Java Enum Members: Should You Use == or equals()?

Java 列挙型メンバーの比較: == または equals()

Java 列挙型を使用する場合、適切な演算子に関してよくある疑問が生じます。 enum メンバーの比較に使用します。従来、開発者は次のように .equals() メソッドを使用してきました。

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

ただし、いくつかの例では、比較のための == 演算子の使用法を示しています。

public useEnums2(SomeEnum a) {
    if (a == SomeEnum.SOME_ENUM_VALUE) {
        ...
    }
}

列挙メンバーの比較にはこれらの演算子のうちどれを優先する必要がありますか?

技術的等価性と Null 安全性

興味深いことに、どちらのアプローチも技術的には正しいです。 Java 列挙型の .equals() のソース コードを見ると、単に == に委任しているだけであることがわかります。ただし、微妙な違いがあります。== は null 安全性も提供します。

== を利用すると、列挙型メンバーの比較における潜在的な null 参照を防ぐことができます。この側面は、null 値が時折発生する可能性があるレガシー システムまたはサードパーティ ライブラリから継承されたコードを扱う場合に特に重要になります。

推奨事項

null の微妙な利点を考慮する安全性と、== と .equals() の両方が本質的に同じ比較を実行するという事実を考慮すると、Java enum メンバーを比較する場合は、一般に == を使用することをお勧めします。この推奨事項は、著者の個人的な好みとも一致しています。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3