I was make some code and found that objects ar eno equals – it is trivial question but not understand how default equals works.
class A {
String id;
public A(String id) {
this.id = id;
}
public static void main(String args[])
{
A a = new A("1");
A b = new A("1");
System.out.println(a.id);
System.out.println(b.id);
System.out.println(a.equals(b));
}
}
Result is:
1
1
false
But I want to have a.equals(b) == true why it is false?
Your class currently extends only
Objectclass and in Object classequalsmethod looks like thisWhat you need is to override this method, for example like this
Also when you override
equalsyou probably should overridehashCodemethod, but this is not subject of your question. You can read more about it here.