5、equals、hashcode、toString
package com.macro.mall; import java.util.Objects; public class Employer { private String name; private int age; @Override public boolean equals(Object otherObject) { //检测Object是否为空 if (otherObject == null) { return false; } //检测this和Object是否指向同一个对象 if (this == otherObject) { return true; } //比较this和Object是否属于同一个类 if (getClass() != otherObject.getClass()) { return false; } //将Object转换成相应的类类型变量 Employer employer = (Employer) otherObject; /** 由于会存在属性值为空的情况,因此如果属性值都为空,Objects.equals则返回true 如果是数组类型比较的话,那么就使用Arrays.equals进行比较 */ return name == employer.name && age == employer.age && Objects.equals(name, employer.name) && Objects.equals(age, employer.age); } @Override public int hashCode() { return Objects.hash(name, age); } /** * 通过使用getClass().getName()方法,防止类名硬编码 * 此外,如果子类继承该类的话,那么可以就可以通过super.toString进行调用。 * 如 * public String toString() { * return super.toString() * +"[bonus=" + bonus * + "]"; * } */ @Override public String toString() { return getClass().getName() + "name=" + name + ", age=" + age + "}"; } }
原文:https://www.cnblogs.com/zengjiao/p/13598839.html