Java 列挙型メンバーの比較: == または equals()? 質問する

Java 列挙型メンバーの比較: == または equals()? 質問する

Javaの列挙型は、プライベートコンストラクタと多数のパブリック静的メンバーを持つクラスにコンパイルされることは知っています。特定の列挙型の2つのメンバーを比較する場合、私は常に次のようにします.equals()

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

==しかし、 .equals() の代わりにequals 演算子を使用するコードに遭遇しました。

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

どの演算子を使用すればよいでしょうか?

ベストアンサー1

どちらも技術的には正しいです。 のソース コードを見ると.equals()、 に従っていることがわかります==

==ただし、null 安全になるので を使用します。

おすすめ記事