java - 覆盖方法 "equals"不适用于 99 id

标签 java overriding

我发现这段代码将 ArrayList.contains 与 java 对象一起使用:

@Override
public boolean equals(Object object)
{
    boolean equals = false;

    if (object != null && object instanceof User)
    {
        equals= this.getId() == ((User) object).getId();
    }

    return equals;
}

在 id 为 99 的对象之前,此方法工作正常,但超过 99 它返回 false,有人可以帮助我吗?

if(users.contains(user)){return true;}

最佳答案

Java 对非原始类型使用数字缓存。因此,直到某个值(整数为 127)之前,您将拥有相同的数字对象。

将您的“==”更改为 equals() 以使其工作。

关于java - 覆盖方法 "equals"不适用于 99 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31242002/

相关文章:

python - django cms 和 zinnia 骨架覆盖

java - 如何使用 Eclipse Juno 查看复杂变量的所有变化

java - 如何通过元素在页面上的位置获取元素?

java - Circuit 消息 SDK 是否可以在 native Android 应用程序中运行?

c# - 新vs覆盖关键字

java - 绕过现场阴影

java - 使用 JButton 启动/停止程序 (Java)

java - 推送通知将发送给发送消息的用户,而不是接收者

c# - 我需要访问组合框的非公共(public)成员(突出显示的项目)

php - 如何检查派生类中的函数是否被重写?