我正在用EcoreUtil.equals
方法观察一个奇怪的行为。我正在使用资源createResource
和load
方法从 2 个不同的位置(我在 2 个位置有相同的文件)加载 2 个完全相同的 XML 文件。
ECoreUtil.equals
为这些 2 返回 false EObjects
。当我调试EcoreUtil.equals
代码时,我发现它因为 == 检查EClass
和EStructuralFeature
. 请注意,类和结构特征是相同的,但是可以看到EClass
和的 2 个单独实例。对功能和类进行 == 检查,因此失败。EStructuralFeature
EcoreUtil.equals
我无法理解的是为什么会为EClass
和创建 2 个实例EStructuralFeature
。我确信这 2 个 XML 文件没有区别。一个是另一个的副本。
ecore 模型中是否有任何设置可能是原因?我的 XML 文件中有xmi:id
属性。
我被这种行为难住了。任何人都可以提供任何指示吗?
问候,阿拉蒂