标签:类型 tty 调用 修改 gets 条件 强制类型转换 是什么 ann
重写equals方法需要遵循Java如下规则,否则编码行为会难以揣测:
重写代码如下:
@Override
public boolean equals(Object o) {
//自反性
if (this == o) return true;
//任何对象不等于null,比较是否为同一类型
if (!(o instanceof Person)) return false;
//强制类型转换
Person person = (Person) o;
//比较属性值
return getId() == person.getId() &&
Objects.equals(getName(), person.getName()) &&
Objects.equals(getSex(), person.getSex());
}
HashMap对象是根据其Key的hashCode来获取对应的Value。
在重写父类的equals方法时,也重写hashcode方法,使相等的两个对象获取的HashCode也相等,这样当此对象做Map类中的Key时,两个equals为true的对象其获取的value都是同一个,比较符合实际。
重写hashCode()方法需要遵循hashCode()协定:
标签:类型 tty 调用 修改 gets 条件 强制类型转换 是什么 ann
原文地址:https://www.cnblogs.com/lyang4-09/p/14138144.html