在一个类里面自定义equals方法即可,可以自己定义比较方法,
如某些字段是否相等,然后两个的时间段是否有交集之类的,
自己根据实际需要来定义,比较实用的一个方法
@Override
//规定参数必须是Object类型
public boolean equals(Object obj) {
//检查是否相同引用
if (obj == this) {
return true;
}
//检查null
if (obj == null) {
return false;
}
//getClass()判断的是准确的运行时类型,instanceof的类型可以是父类或接口
if (obj.getClass() != this.getClass()) {
return false;
}
//这里类型转换一定是安全的
MdQaCommon that = (MdQaCommon) obj;
//确认关键字段都相等
if (!this.companyOrgCode.equals(that.companyOrgCode)) {
return false;
}
/*
* 日期判断是否有交集
* this.startDate-this.endDate that.startDate-that.endDate
* A-B C-D A>D || B<C就无交集
*/
if (this.startDate.compareTo(that.endDate)>0
|| this.endDate.compareTo(that.startDate)<0) {
return false;
}
return this.productSubseries.equals(that.productSubseries);
}
本文详细介绍了如何在Java中自定义equals方法,包括检查对象引用、处理null情况、确保类型一致性和比较关键字段,以及如何判断两个时间段是否有交集。
1201

被折叠的 条评论
为什么被折叠?



