Ну, чтобы сделать это просто возвращает истину достаточно легко:
@Override
public boolean equals(Object other) {
return true;
}
Однако, я бы утверждать, что это не то, что вы должны делать (даже в несколько менее тривиальной реализации).
Я думаю, что метод equals
от Object
не должен возвращать true
, если типы на самом деле не совпадают. Иначе это заканчивается тем, что делает жизнь действительно сложной с точки зрения обеспечения того, чтобы аспекты симметрии, требуемые Object.equals(Object)
, выполнены. Он также не чувствует, что он выполняет natural равенство в этой точке.
Однако было бы вполне разумно написать класс, который может сравнивать любые два экземпляра Base
для равенства в вашем конкретном случае. Хорошая вещь о компараторах равенства заключается в том, что они не должны быть такими же естественными - вы не определяете, какое равенство должно означать для всего типа - вы просто описываете одно конкретное сравнение.
К сожалению, Java не имеет интерфейса EqualityComparator<T>
(или что-то еще), чтобы пойти с Comparator<T>
. Это делает гораздо сложнее создавать (скажем) карты и наборы, которые используют конкретную идею равенства (и хэш-код для этого). Это может быть или не быть проблемой в вашем случае - как вы надеетесь использовать это сравнение равенства в любом случае? Если это в вашем собственном коде, вы можете написать свой собственный интерфейс EqualityComparator<T>
. Если вы собираетесь построить карту или установить ее, это будет не так просто :(