我想知道为什么equals()
为用户定义的类而不是 String 类返回 False。(请注意,该equals()
方法未被覆盖。)
例如:
public class EqualsTest {
public static void main(String[] args) {
Employee e1 = new Employee();
Employee e2 = new Employee();
e1.setId(100);
e2.setId(100);
//Prints false in console
System.out.println(e1.equals(e2));
}
}
我知道hashCode()
fore1
和e2
是不同的。因此,equals 方法的默认实现返回 False。
String s1 = new String();
String s2 = new String();
s1.equals(s2); // returns true;
我知道为什么它为用户定义打印 False;我想确切地知道 False 将如何返回。
更正——我倾向于说在 Employee 类中 equals 方法没有被覆盖。