String と EMF EObject が渡される Java メソッドがあります。String は、EObject の属性の名前を意味します。たとえば、「foo」と EObject eobj が渡された場合、eobj.getFoo() にアクセスする必要があります。featureID から EAtribute の値を取得する方法は知っていますが、属性名で値を取得する方法が見つからないようです。これは可能ですか?
4260 次
1 に答える
4
以下はトリックを行うはずですが、エレガントではありません。の を取得しeClass
、eObject
一致する属性定義を名前で見つけてアクセスします。ここgetEAllAttributes()
で使用される には、親クラスによって定義された属性も含まれます。
EObject eObject = null;
String attributeName = "";
EDataType resultingDataType = null;
EList<EAttribute> eAllAttributes = eObject.eClass().getEAllAttributes();
for (EAttribute eAttribute : eAllAttributes) {
if (eAttribute.getName().equals(attributeName)) {
resultingDataType = (EDataType) eObject.eGet(eAttribute);
}
}
System.out.println(resultingDataType);
于 2012-11-14T03:38:05.610 に答える