Javaの列挙型(Enum)のequalsと==とtoString

恥ずかしながらすぐに忘れる…

static enum Number{
    ONE,
    TWO,
    THREE
}

public static void main(String args[]) {
    System.out.println("ONE equals Number.ONE            is " + "ONE".equals(Number.ONE));
    System.out.println("ONE equals Number.ONE.toString() is " + "ONE".equals(Number.ONE.toString()));
    System.out.println("ONE   ==   Number.ONE.toString() is " + ("ONE" == (Number.ONE.toString())));
}

実行結果

ONE equals Number.ONE            is false
ONE equals Number.ONE.toString() is true
ONE   ==   Number.ONE.toString() is true

文字列との比較はtoString()を使用


Enum#equals()

内部では「==」を使用している、なるほどね〜

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