1. ホーム
  2. java

[解決済み] Java enumのメンバーを比較する:==またはequals()?

2022-02-15 18:35:01

質問

Java の列挙型は、プライベート コンストラクタと多数のパブリック スタティック メンバを持つクラスにコンパイルされますね。ある列挙型の 2 つのメンバを比較する場合、これまで私は常に .equals() , 例.

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

しかし、私はちょうど等号演算子を使用するいくつかのコードに出会いました。 == の代わりに、.equals() を使用します。

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

どの演算子を使えばいいのでしょうか?

どのように解決するのですか?

どちらも技術的には正しいです。のソースコードを見てみると .equals() に従うだけです。 == .

を使っています。 == しかし、これならヌルでも大丈夫です。