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