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

自定义类equals方法疑问:instanceof判断后为何未终止执行?

自定义equals方法判断逻辑的疑问解答
  • 你完全不用担心后续代码会执行——当!(object instanceof class)的结果为true时,执行return false;语句后方法会立刻终止,后面的类型转换代码根本不会被运行。
  • 举个实际的代码例子就能看明白:
@Override
public boolean equals(Object obj) {
    // 1. 引用相同直接返回true,方法结束
    if (this == obj) {
        return true;
    }
    // 2. 传入对象不是当前类实例,返回false,方法直接终止
    if (!(obj instanceof MyClass)) {
        return false;
    }
    // 3. 只有上面的if条件不成立(即obj是MyClass实例),才会执行到这里的类型转换
    MyClass other = (MyClass) obj;
    // 后续的属性相等性判断
    return this.name.equals(other.name) && this.age == other.age;
}
  • 核心点就是return语句的作用:只要执行了return,当前方法就会停止所有后续操作,直接把结果返回给调用方。只有当传入的对象确实是当前类的实例时,才会跳过return false;,继续执行后面的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:24:20