gpt4 book ai didi

java - 内容是否可能发生变化,但 hashcode 仍然为 xml 中的节点返回相同的值

转载 作者:行者123 更新时间:2023-12-02 11:38:31 28 4
gpt4 key购买 nike

有时我会得到不同的子节点,对于在不同调试时单次执行程序的 xml 节点,但哈希码仍然相同。有可能像这样吗?

有什么方法可以知道我的 xml 节点数据何时被更改?请帮忙解决这个问题?

最佳答案

如果您正在谈论 org.xml.dom.Node 及其子类,例如 org.xml.dom.Element,它们不会覆盖 equals ()hashCode() 方法。这意味着它们的作用与 Object.equals() 相同 - 这意味着哈希码仅取决于 Java 对象标识,并且不会随对象内容而改变。这实际上使得 equals() 对于节点来说毫无用处(您甚至无法保证同一节点始终由同一 Java 对象表示)。 DOM 提供了两种比较节点的方法:isSameNodeisEqualNode - 但它们都没有提供相应的哈希码函数。

糟糕的设计,是的。坦率地说,我不知道为什么还有人使用 DOM。有更好的替代方案可用,例如 JDOM2 和 XOM。

关于java - 内容是否可能发生变化,但 hashcode 仍然为 xml 中的节点返回相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48741583/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com