重写类外的对象#equals(对象)
使用时是否可以本地覆盖 ?Object#equals(Object)
list.contains(someObject)
例:
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> mapping
someObject = mapping.get(objectId)
编辑:我的问题不是重复的,因为我特别要求覆盖。Object#equals(Object)