在我们的工作中,我们经常需要通过比较一些属性来判断是否为同一对象。例如警察叔叔通过比较身份证号来判断是否为同一人。
而我们Object类中的equals就不能完成了。这时我们就需要重写equals方法。
重写equals的快捷键:(idea为例)
右键找到Generate,点击
第二步点击equals()andhashCode()
第三步 点击next
第四步,选择你要生成的equals方法,这里我选择根据id生成,即id相同则说明两个对象相同
如图就是生成的方法
import java.util.Objects;
public class User {
int id;
String name;
public user(int id,String name) {
this.id = id;
this.name=name;
}
public static void main(String[] args){
user u=new user(10086,"吴佳欣");
user u2=new user(10086,"赵春志");
System.out.println(u.equals(u2));
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof user)) return false;
user user = (user) o;
return id == user.id;
}
@Override
public int hashCode() {
return Objects.hash(id);
}
}