You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在equals(Object)方法实现中,能否用getClass.equals替代类对象直接比较?

问题解答

完全可以用if(!this.getClass().equals(other.getClass()))替代原代码中的if(this.getClass() != other.getClass())判断,二者在功能上完全等价。

原因很简单:JVM中每个类的Class对象是唯一的单例实例,所以==用于比较Class对象时,本质就是判断两个引用是否指向同一个实例;而Class类继承自Object,它的equals方法默认实现就是基于==的引用比较,因此两种写法的判断结果完全一致。

实际开发里两种写法都能用,不过==的写法会更简洁直观。

内容的提问来源于stack exchange,提问作者VS228

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:15:33