枚举类型中的等于方法

时间:2014-12-19 11:34:03

标签: java enums equals

public enum EnumEqualsMethod {

    A,B,C

}


public enum EnumEqualsMethod1 {

    A,C,D

}

EnumEqualsMethod a =  EnumEqualsMethod.C;
ЕnumEqualsMethod1 b=  EnumEqualsMethod1.C;

System.out.println(a.equals(b));

输出为false。为什么?

2 个答案:

答案 0 :(得分:5)

将枚举作为对象进行比较。这是不同类的两个不同对象。他们为什么要平等? A,B,C - 只是变量的名称。它们在比较操作中毫无意义。

答案 1 :(得分:0)

为了理解输出为何错误,您应该将EnumEqualsMethod视为一个类,将A, B, C视为该类的 Instances

例如,Enums的比较就像执行以下操作:

Class1 a = new Class1();
Class2 b = new Class2();

System.out.print(a.equals(b));