覆盖方法 "equals" 不适用于 99 id
Override method "equals" doesn't work over 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 它 returns 永远错误,有人可以帮助我吗?
if(users.contains(user)){return true;}
Java 使用非原始类型的数字缓存。因此,直到某个值(整数为 127)之前,您将拥有相同的数字对象。
将您的“==”更改为 equals() 以使其工作。
我发现此代码将 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 它 returns 永远错误,有人可以帮助我吗?
if(users.contains(user)){return true;}
Java 使用非原始类型的数字缓存。因此,直到某个值(整数为 127)之前,您将拥有相同的数字对象。
将您的“==”更改为 equals() 以使其工作。