基础巩固--编写一个完美的equals方法
2017-11-21 01:10
295 查看
显示的参数命名为otherObject。
1,检测this与otherObject是否引用同一个对象:
2,检测otherObject是否为null:
3,比较this与otherObject是否属于一个类。
如果equals的语义在每个子类中有所改变,就使用getClass检测:
如果所有的子类都拥有统一的语义,就使用instanceof检测:
4,将otherObject转换为相应的类类型变量:
5,对所有需要比较的域进行比较。使用==比较基本数据类型,使用Objects.equals比较对象域:
1,检测this与otherObject是否引用同一个对象:
if(this == otherObject) return true;
2,检测otherObject是否为null:
if(otherObject == null) return false;
3,比较this与otherObject是否属于一个类。
如果equals的语义在每个子类中有所改变,就使用getClass检测:
if(this.getClass() != otherObject.getClass()) return false;
如果所有的子类都拥有统一的语义,就使用instanceof检测:
if(!(otherObject instanceof ClassName)) return false;
4,将otherObject转换为相应的类类型变量:
ClassName other = (ClassName) otherObject;
5,对所有需要比较的域进行比较。使用==比较基本数据类型,使用Objects.equals比较对象域:
return this.field1 == other.field1 && Objects.equals(this.field2, other.field2) && ...;
//java.util.Arrays static Boolean equlas(type[] a, type[] b) /*如果两个数组长度相同,并且在对应的位置上数据元素也均相同,将返回true。*/ //java.util.Objects static boolean equals(Object a, Object b) /*如果a和b都为null,返回true;如果只有其中之一为null,则返回false;否则返回a.equals(b)*/
相关文章推荐
- Java:Object类的equals()方法 如何编写一个完美的equals()方法
- java编写一个完美的equals方法
- 编写一个比较完美的equals方法的建议(java)
- 编写一个完美的equals方法的建议
- Java 编写一个完美的equals()方法的建议
- Java实践(四)---编写一个完美的equals方法
- 编写一个完美的equals方法的建议
- Java中编写一个完美的equals方法
- java基础巩固系列(六):java中equals()方法与==的比较
- 如何编写完美的 equals 方法
- java线程基础巩固---分析Thread的join方法详细介绍,结合一个典型案例
- Rhyme/Java getClass()与instanceof的区别以及如何编写一个完美的equals()
- 在Java中编写完美的equals方法
- java中写一个完美equals方法的建议
- 程序员面试金典——解题总结: 9.18高难度题 18.2编写一个方法,洗一副牌。要求做到完美洗牌,换言之,这副牌52!种排列组合出现的概率相同
- [基础题] 6.(*)按如下要求编写Java程序: (1)编写一个接口:OneToN,只含有一个方法int dispose(int n)
- 编写一个方法,洗一副牌。要求做到完美洗牌,换言之,这幅牌52!种排列组合出现的概率相同。假设给定一个完美的随机发生器
- 1 编写一个Book类,该类至少有name和price两个属性。该类要实现Comarable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。
- 建立一个对象模型的时候,为什么要重写hashCode与equals方法
- 继续在该类中编写一下方法,名称为Reconvert,参数一个,但可以是字符串、整数、单精度、双精度,方法功能返回参数的逆序。如Reconvert(6221982)返回值为2891226。