Overriding equals() of Object (Java)

Today I encoutered a problem to compare to user-defined instances for value equavelence.

It is necessary to override the equals() method derived from System.Object.

I tried to make it as simple as

public boolean equals(userDefinedClass p){
  return this.v1==p.v1&&this.v2==p.v2;
}

but it refuses to work.

After carefully explored the context, I found 2mistakes:

1.  "==" is used for reference compare, which is against my intention.

2. this function is not overriding the derived equals(), but a overload with different parameters.

So, this works

public boolean equals(Object q){
  userDefinedClass p = (userDefinedClass)q;
  return this.v1.equals(p.v1)&&this.v2.equals(p.v2);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值