メソッドで奇妙な動作を観察していEcoreUtil.equals
ます。createResource
リソースのメソッドとメソッドを使用して、2 つの異なる場所 (2 つの場所に同じファイルがあります) からまったく同じ 2 つの XML ファイルを読み込んでいますload
。
ECoreUtil.equals
これら 2 に対して false を返しますEObjects
。コードをデバッグすると、とEcoreUtil.equals
の == チェックが原因で失敗することがわかります。クラスと構造的特徴は同じですが、 と の 2 つの別個のインスタンスが見られることに注意してください。機能とクラスに対して == チェックを行うため、失敗します。EClass
EStructuralFeature
EClass
EStructuralFeature
EcoreUtil.equals
私が理解できないのは、なぜ と に対して 2 つのインスタンスが作成されるのかということEClass
ですEStructuralFeature
。2 つの XML ファイルに違いはないと確信しています。一方は他方のコピーです。
その理由となる可能性のあるecoreモデルの設定はありますか? 私の XML ファイルにはxmi:id
属性があります。
私はこの振る舞いに困惑しています。誰でもポインタを与えることができますか?
よろしく、 アラティ