0

if句のeCoreデータ型とeCoreクラスを比較したいと思います。このようなもの:

if(ent == "Entity"){}

「エンティティ」はeCoreクラスであり、「ent」はこのクラスの実際のオブジェクトです。

同じ質問がeCoreデータ型にも当てはまります。

if(ent.eType == "EBoolean"){}

どうやってやるの?現時点では、名前を文字列操作と比較するだけです。

これに似ています:

if(ent.name.toString.equals( "Entity")){}またはeType.name.toString.equals( "EBoolean")ですが、これは私にとって一時的な解決策にすぎません。

この問題に対する別の可能なより専門的な解決策はありますか?

4

2 に答える 2

1

EMF モデル用の Java クラスを生成しましたか? はいの場合、instanceof が機能するはずです。

switch ent {
  Entity : {
     ...
  }
}

EClass インスタンスを比較したい場合は、生成された EPackage に使用できる定数があります。それは次のようになります。

if (ent.eClass == MyEcorePackage::Entity) {
   ...
}
于 2013-02-12T20:38:33.057 に答える