覆盖方法 "equals" 在 99 id 以上不起作用



我发现这段代码将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表示Integer(,你们将拥有相同的数字对象。

将"=="更改为equals((以使其工作。

最新更新