eclipse - 使用 Ecoreutil.Copier 复制的对象的结果哈希码与原始哈希码不同
问题描述
我ECoreUtil.Copier
用来创建我的EObject
. 但是,会创建精确的副本,但具有不同的哈希码。
为什么哈希码会改变?
解决方案
EObjects的equals
方法和方法hashCode
基于对象的身份。这是EMF 规范所要求的。两个不同的对象必须被认为是不同的equals
,并且也应该具有不同的哈希码,即使它们的成员具有相同的值。
当您复制对象时ECoreUtil.Copier
,结果是具有新身份的新对象。
如果您想比较 EObject 以了解它们在结构上是否等效——即使它们是不同的对象——那么您可以使用该EcoreUtils.equals
方法。
推荐阅读
- python-3.x - Django-cms 3.5.2 ImportError:没有名为 djangocms_admin_style 的模块
- javascript - 无法使用样式组件将样式应用于第一个孩子
- c# - 如何获取下拉列表值并通过 ActionLink 传递给控制器?
- reactjs - Where does ReactJS holds the state of a class and can I access the setState from the DOM?
- mysql - MySQL如何使用CASE语句作为列而不是行按日期分组
- php - Jquery Post PHP 总是发送成功响应
- javascript - 简单的 HTMLform 添加两个数字
- python - 在 spark 数据框中使用列值转换另一列
- ruby-on-rails - Rails:未定义的方法 `signed_id' 用于#
- node.js - 如何在 mongodb nodejs driver 3.0 中使用游标?