私は列挙型を持っています。例えば、enum Color { Red, Brown }
です。列挙型を比較する最善の方法
if (c1 == Color.Brown) {
//is brown
}
または
if (c1.equals(Color.Brown)) {
//is brown
}
私は列挙型を持っています。例えば、enum Color { Red, Brown }
です。列挙型を比較する最善の方法
if (c1 == Color.Brown) {
//is brown
}
または
if (c1.equals(Color.Brown)) {
//is brown
}
使用==
:一定の値と比較するための最良の方法は何
Color c1 = Brown, c2 = Red
:私も、その型の変数をいくつか持っています。同じ列挙定数の複数のインスタンス(クラスローダーのコンテキスト内ではありませんが、その点は無視してください)は存在しないため、常に安全です。
つまり、equals()
を使用すると安全でもあり、参照の平等も実行します。それはかなり多くのスタイルの選択です。
個人的には、私はほとんど列挙型のためにif
ステートメントを使用して自分自身を見つけることはほとんどありません。私はブロックswitch
を好む。
switch (c1) {
case Brown:
//is brown
break;
case Red:
//...
}
このコードスニペットは私を悲しいパンダにします。 D: – Moonbeam
@ムーンビーム:どうしてですか?明らかにそれは人為的な例ですが、私のものではなくOPの例です。 –
enums変数がnullになることができるため、==を使用します。 equals()を使用する理由はありません。 –
いずれかは問題ありませんが、簡単にするためには==を付けてください。 –
私は '.equals(...) 'と一緒に行くと、私はもっと幸せになれます。 :D – Moonbeam
私は定数を左に置くことを好みます。そうすれば、誤って=を入れた場合、コンパイラエラーが発生します。 Color.Brown == c1 – QuentinUK