欢迎大家来到IT世界,在知识的湖畔探索吧!
用Java实现equals方法需要注意的步骤
具体步骤如下:
1. 用 == 来确认是否等于this
2. 用 instanceof 来确认类型是否正确,如果实现了接口,判断的类型要是这个接口
3. 把参数转换成需要的类型
4. 对一些逻辑成员变量进行比较
package com.rickie.others;
/**
* 实现 equals 方法
*/
public class Person {
private String name;
private int age;
public Person(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;
}
}
Object 类定义中,对hashCode 和 equals 要求如下:
- 如果两个对象的equals的结果相等,则两个对象的 hashCode 的返回值也必须要相同;
- 任何时候覆写 equals,都必须同时覆写hashCode。
如果不覆写 hashCode(),即使equals() 相等也毫无意义,Object.hashCode() 的实现是默认每一个对象生成不同的 int 数值,它本身是native 方法,一般与对象内存地址有关。
如果自定义对象作为Map的键,那么必须覆写hashCode和equals。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/36389.html