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
。为什么?
答案 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));