我正在尝试为某些链接彼此的类创建一个正确的hashCode
(和equals
)实现。
示例:
对象1(父级)
对象2(孩子)
如果我要为这些对象的每个字段创建hashCode
,则会出现无限循环:父项的hashCode
取决于其子项;孩子的hashCode
取决于其父母。
我该如何解决这个问题?我不能忽略其中一个字段。在我的实现中,父母有姓名,所以现在我使用父name
字段来散列而不是散列整个对象。这很容易出错,因为对象可能具有相同的名称但不是相同的子对象。
编辑:我不能忽略父,因为除了父级之外,子节点可能在结构上相同:然后它们不相等,因为它们在数据结构中处于不同的位置。这个问题不重复。