Предупреждение Eclipse о том, что SortedMap не перераспределяет equals() и hashCode()
У меня есть класс Java POJO, который я использую в своем проекте для десериализации Джексона из JSON. Этот класс имеет различные члены, но важный член для рассмотрения имеет тип java.util.SortedMap. Я хочу добавить equals()
а также hashCode()
в этот класс, чтобы я мог сравнить экземпляры этих классов друг с другом. Поэтому я использовал инструмент генерации исходного кода Eclipse для создания этих двух методов. Я получаю следующее предупреждение от IDE:
Тип поля 'java.util.SortedMap' не переопределяет equals() и hashCode() - полученный код может работать некорректно.
Обратите внимание, что мой объект POJO, который я пытаюсь создать equals()
а также hashCode()
for имеет членов различных интерфейсов java.util, таких как List и Map, но нет предупреждений об отсутствии equals()
или же hashCode()
для этих двух интерфейсов.
Я предполагаю, что отчасти проблема в том, что я не уверен, почему реализация SortedMap Jackson десериализует JSON. Есть много различных реализаций интерфейса SortedMap, доступных в моем classpath, и некоторые делают переопределение equals()
а также hashCode()
, но все еще невозможно (?) знать, будет ли одна из этих реализаций выбрана Джексоном.
Это предупреждающее сообщение, о котором мне нужно беспокоиться? Кто-нибудь знает какие-либо обходные пути для этой проблемы?
За исключением: у меня нет желания использовать Ломбок в этом проекте.
Обновить
Подана следующая ошибка для Eclipse: https://bugs.eclipse.org/bugs/show_bug.cgi?id=422184
1 ответ
Вы не получаете предупреждения о List
а также Map
потому что эти интерфейсы объявляют equals()
а также hashCode()
методы.
поскольку SortedMap
расширяет Map
интерфейс, который имеет методы и который все еще должен работать для SortedMap
Я думаю, что все должно работать.