我有一个Java POJO类,我在我的项目中用于JSON的Jackson反序列化。此类有各种成员,但要考虑的重要成员是java.util.SortedMap类型。我想将equals()
和hashCode()
添加到此类中,以便我将这些类的实例相互比较。因此,我使用Eclipse的源代码生成工具来创建这两种方法。我从IDE收到以下警告消息:
字段类型'java.util.SortedMap'不会重新声明equals()和hashCode() - 生成的代码可能无法正常工作。
请注意,我尝试创建equals()
和hashCode()
for的POJO对象确实包含不同 java.util 接口的成员,例如 List 和 Map ,但没有关于这两个接口缺少equals()
或hashCode()
的警告消息。
我想问题的一部分是我不确定为什么 SortedMap Jackson的实现会将JSON反序列化为。我的类路径中有许多不同的 SortedMap 接口实现,有些会覆盖equals()
和hashCode()
,但是仍然不可能(?)知道其中一个实施将是杰克逊的选择。
这个警告信息是否需要我担心?有人知道这个问题的任何变通方法吗?
除此之外:我不想在这个项目中使用Lombok。
<小时/>
为Eclipse提出以下错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=422184
答案 0 :(得分:2)
您没有收到有关List
和Map
的警告,因为这些接口确实声明了equals()
和hashCode()
方法。
由于SortedMap
扩展了具有这些方法的Map
接口,并且该接口仍应适用于SortedMap
,我认为一切都应该有效。