关于Java Integer和Long使用equals直接比较

Integer和Long不能直接equals比较会返回False

Long.class源码

public boolean equals(Object obj) {
    if (obj instanceof Long) {
        return this.value == (Long)obj;
    } else {
        return false;
    }
}

Integer.class源码

public boolean equals(Object obj) {
    if (obj instanceof Integer) {
        return this.value == (Integer)obj;
    } else {
        return false;
    }
}

解决方法

  • Long变量.equals(Integer变量.longValue())
  • Integer变量.equals(Long变量.intValue())
posted @ 2023-10-19 23:55  →_→BéLieve  阅读(17)  评论(0)    收藏  举报  来源