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) { ... } }
Which enum メンバーの比較には、これらの演算子のどれが優先されるべきですか?
技術的等価性と Null 安全性
興味深いことに、どちらのアプローチも技術的には正しいです。 Java 列挙型の .equals() のソース コードを見ると、単に == に委任しているだけであることがわかります。ただし、微妙な違いがあります。== は null 安全性も提供します。
== を利用することで、列挙型メンバーの比較における潜在的な null 参照を防ぐことができます。この側面は、null 値が時折発生する可能性があるレガシー システムまたはサードパーティ ライブラリから継承したコードを扱う場合に特に重要になります。
推奨事項
null の微妙な利点を考慮する安全性と、== と .equals() の両方が本質的に同じ比較を実行するという事実を考慮すると、Java enum メンバーを比較する場合は、一般に == を使用することをお勧めします。この推奨事項は、著者の個人的な好みとも一致しています。
以上がJava Enum メンバーの比較: == を使用するか、equals() を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。