用Java实现equals方法有一个需要注意的步骤,这样不容易出错,如下:
1. 用 == 来确认是否等于this
2. 用 instanceof 来确认类型是否正确,如果实现了接口,判断的类型要是这个接口
3. 把参数转换成需要的类型
4. 对一些逻辑成员变量进行比较
例如:
public class Person {
private String name;
private int age;
public Persion(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Person))
return false;
Person p = (Person) o;
return name.equals(p.name) && age == p.age;
}
}