【问题标题】:equals() for subclasses of XOM Elementequals() 用于 XOM 元素的子类
【发布时间】:2013-04-02 21:56:30
【问题描述】:

我创建了 XOM Element 的子类,并希望将它们与 SetHashMap 等容器一起使用。然而,这些需要equals(Object obj) 方法。我已经实现了一个相等算法,但不能使用它,因为XOM.Node()equals(Object obj) 声明为final。有什么办法可以轻松克服吗? [如果这是唯一的方法,我可以创建一个包装器/委托]。

【问题讨论】:

    标签: java equals xom


    【解决方案1】:

    所有 XOM 节点都有 equals 方法和 hashCode 方法,就像所有 Java 对象一样,将它们与 Set 或 HashMap 等容器一起使用。仅支持身份平等的决定是经过深思熟虑的,这就是为什么 equals 方法是最终的。问题是为什么你需要使用不同的平等概念?例如。如果两个节点看起来相同但位于不同的位置,或者位于不同的文档中,则通常认为它们是不同的元素。将它们视为相同的用例是什么?

    【讨论】:

    • 谢谢艾略特。我同意“通常”。我希望比较(并索引)对我的问题具有等效表示的元素(例如,浮点数或日期或其他一些字段可能存在词汇差异)。序列化不会这样做。我已经编写了适用于我的目的的相等方法。例如,我可能希望排除对我来说相同的元素。我可能会创建自己的容器来管理它们。
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    相关资源
    最近更新 更多