equals,hashcode,toString

本文详细探讨了equals方法、hashCode方法及toString方法的有效实现方式,通过具体的代码示例展示了如何确保对象比较的一致性和高效性,同时保持良好的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看到一个关于equals,hashcode,toString方法的类型下面是关于具体实现

@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;

//使用<?>表示运行时才知道类型
DBObject<?> dbObject = (DBObject<?>) o;

//在if()中使用'?:',!equal和!=配套使代码简洁
if (alias != null ? !alias.equals(dbObject.alias)
: dbObject.alias != null)
return false;
if (expression != null ? !expression.equals(dbObject.expression)
: dbObject.expression != null)
return false;

return true;
}


@Override
public int hashCode() {
int result = alias != null ? alias.hashCode() : 0;
result = 31 * result + (expression != null ? expression.hashCode() : 0);
return result;
}


@Override
public String toString() {
StringBuilder sb = new StringBuilder(expression);
if (hasAlias()) {
sb.append(SPACE).append(AS).append(SPACE).append(alias);
}
return sb.toString();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值