我已经创建了XOM Element
的子类,并希望将它们与Set
或HashMap
等容器一起使用。但是,这些方法需要equals(Object obj)
方法。我已经实现了一个相等的算法,但不能将其用作XOM.Node()
声明equals(Object obj)
为final
。有什么办法可以轻易克服这个问题吗? [如果这是唯一的方法,我可以创建一个包装器/委托]。
答案 0 :(得分:1)
所有XOM节点都具有equals方法和hashCode方法,与所有Java对象一样,将它们与容器(如Set或HashMap)一起使用。只支持身份平等的决定是有意的,这就是为什么equals方法是最终的。问题是为什么你需要使用不同的平等概念?例如。如果两个节点看起来相同但位于不同的位置,或者位于不同的文档中,则通常认为它们是不同的元素。将它们视为同样的用例是什么?