Мое приложение может сравнивать экземпляры любых двух подклассов одного и того же абстрактного родительского класса. Я хочу, чтобы они сравнивались следующим образом:Сравнение Java-подклассов
- Если они представляют собой разные подклассы, родительский класс должен выполнить сравнение.
- Если они являются одним и тем же подклассом, подкласс должен выполнить сравнение.
Классы будут сравниваться с TreeMap, поэтому у меня есть выбор использования компаратора или реализация Comparable (или обоих?).
Я могу придумать несколько способов сделать это, но все они немного грязны и подвержены ошибкам. Есть ли элегантное решение?
Заранее спасибо ...
Что вы подразумеваете под «классами будет сравниваться с Treemap»? –
Поскольку вы упоминаете Comparable и Comparator, можем ли мы предположить, что результат сравнения имеет все три возможности - «меньше», «больше» и «равно»? Если сравнение исключает возможность даже одного из этих параметров, то вы не должны использовать эти интерфейсы. –
Вы хотите сравнить классы с помощью рефлексии? Как и в каких методах и свойствах каждый класс имеет? – user845279