enumは==を使ってもよい

Java5のenum。どうも不勉強で適当に使っていたため、チキンな僕はこれまで比較にequalsを使っていました。

myyasai.equals(野菜.ナス)

しかし、どうやら==で比較できることが保障されているようです。


列挙型
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/enums.html

比較可能かつ直列化可能で


こう書いていいんです。

myyasai == 野菜.ナス


コンパイラがうまいことやってくれるようです。
実際、SunのJDKEnumクラスの実装を見るとequalsはこうなっています。==するのと一緒じゃん。

public final boolean equals(Object other) { 
    return this==other;
}

==だとソースが見やすいし、ぬるぽもないし、これからはじゃんじゃなん==しちゃうぞー。
(注:Stringは通常==はダメです。Integerなどプリミティブラッパは==でぬるぽあります)


ちなみにSerializableも最初からついているので、新たに追加する必要はないようです(今までわざわざ付けていた。アホだ)。

public abstract class Enum>
        implements Comparable, Serializable {