我发现这段代码将 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/