当使用list.contains(someObject)时,是否可以在本地覆盖Object#equals(Object)?
例:
class SomeObject {
...
private int id;
private String name;
@Overrdide
public boolean equals(Object other){
...
return this.id == other.id;
}
}
但是当我使用list.contains(someObject)时,如果我想要另一种平等呢?例如我想知道一个列表是否包含一个名字?是否可以匿名覆盖Object#equals(Object)?
更具体的解释为什么我会需要它:
int objectId = ... // Some event which passes me the attribute of an object but not the object itself
现在我有List< SomeObject> someObjects和我想知道这个列表是否包含一个objectId对象,而不必重复它。
我可以想到的一个“解决方案”将是使用Map< Integer,SomeObject>映射然后someObject = mapping.get(objectId)
编辑:我的问题不是重复的,因为我特别要求覆盖Object#equals(Object)。