В `равно (значение T) " должно ли T быть объектом, или оно может быть подобно городу и т. д.?
Я пытаюсь лучше понять Метод equals()
. Все примеры, которые я видел, делают что-то вроде:
public class City
{
public boolean equals(Object other)
{
if (other instanceof City && other.getId().equals(this.id))
{
return true;
}
// ...
}
}
Должен ли метод принимать объект, а не город?
Например, это ниже не допускается?
public class City
{
public boolean equals(City other)
{
if (other == null)
{
return false;
}
return this.id.equals(other.getId());
}
}
3 ответа:
Да, это должно быть
Object
. Иначе вы не переопределяете реальноеObject#equals()
, но скорее перегружая его.Если вы только перегружаете его, то он не будет использоваться стандартным API, например Collection API и т. д.
Сопутствующие вопросы: