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));
Output is false
.Why?
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));
Output is false
.Why?
Enums are compared as Objects. These are two distinct objects of different classes. Why should they be equal? A,B,C - are just names of variables. They mean nothing in comparison operation.
In order to understand why the output is false you should think of EnumEqualsMethod
as a Class and A, B, C
as Instances of that Class.
For example the comparison of the Enums is like doing the following:
Class1 a = new Class1();
Class2 b = new Class2();
System.out.print(a.equals(b));