Java Object equals方法
来源:互联网 发布:苏州博物馆 知乎 编辑:程序博客网 时间:2024/05/29 14:14
博主是大三的在校大学生,学习计算机的路上,有些自己的感悟,写下来互相讨论下,欢迎吐槽。
Object类是Java中所有的类的始祖,equals()是Object类中检测一个对象是否等于另外一个对象。这个方法将判断两个对象是否具有相同引用,如果两个对象具有相同的引用,那么这两个对象一定相等。但是大多数类来说,这种判断并没有什么意义,如果这两个对象的状态相等,就认为这两个对象是相等的。所以有时候并不是具有相同引用才是相等。
因此有必要给出一个完美的重写equals方法的建议:
1.显示参数命名otherobject,稍后需要把他转换成另一个叫做other的变量。
2.检测this与otherobject是否引用同一个对象
if(this==otherobject) return true;
3.检测otherobject是否为null,如果是null返回false。
4.比较this与otherobject是否属于同一个类。如果equals的语义在每个子类的中有所更改,就用getClass检测
if(this.getClass()!=otherobject.getClass()) return false;
如果所有子类都拥有统一的语义,就使用instanceof检测
if(!(otherobject instanceof Classname)) return false;
5.将otherobject转换为相应的类类型变量:
ClassName other=(ClassName) otherobject6.对所有的需要进行比较的域开始比较。使用==比较基本类型域,使用equals比较对象域。如果所有的都匹配,就返回true;否则返回false
return filed1==other.filed1 && Objects.equals(field2,other.filed2) && .....;完整的代码:
public boolean equals(Object otherobject){if(this==otherobject)return true;if(otherobject==null)return false;if(getClass()!=otherobject.getClass())return false;Person other=(Person)otherobject;return name.equals(other.name)&& money==other.money && ...;}
1 0
- Java Object equals方法
- 重写Object类中的Equals方法(Java)
- java 的Object的equals方法
- java Object 的equals方法的复写
- java基础:Object的equals方法
- Java中Object类的equals方法
- java超类Object的equals()方法
- Java 中Object类与equals方法
- JAVA——Object类,equals方法
- java基础:Object的equals方法
- Java中的Object-equals()方法
- Java day07 复写Object 类的equals(Object)方法
- 【Java】Java中的instanceof,Object类,equals()方法,toString()方法
- 重载Object equals方法
- Object的equals方法
- Object类--equals方法
- Object之equals方法
- object的equals方法
- 《机器学习实战》—K-近邻算法
- HDU1038 Biker's Trip Odometer(java)
- Android 夜间模式切换,颜色渐变效果实现
- CoreData多线程安全
- Ubuntu14.04 USB WIFI 连接不稳定解决方法
- Java Object equals方法
- 第五届全国职工职业技能大赛加工中心操作工、数控机床装调维修工决赛落幕决赛成绩
- 链接
- JPushPlugin 客户端 api
- tornado入门,hello world
- 包子的 oracle 学习笔记---ORA异常原因与解决办法
- shell 文件分类
- UIControl及其子类
- Smarty标签运算,控制结构[if,for,foreach,section,while]