首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较Ecore类和类型

比较Ecore类和类型
EN

Stack Overflow用户
提问于 2013-01-13 20:39:46
回答 2查看 72关注 0票数 0

我想比较if子句中的eCore-datatypes和eCore-classes。如下所示:

if (ent == "Entity"){}

"Entity“是eCore-Class,"ent”是这个类的实际对象。

同样的问题也适用于eCore数据类型。

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

我该怎么做呢?目前,我只将名称与字符串操作进行比较。

与此类似:

if(ent.name.toString.equals("Entity")) {}或eType.name.toString.equals("EBoolean"),但这对我来说只是一个临时的解决方案。

有没有其他更专业的解决方案来解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2013-02-13 04:38:33

您是否为EMF模型生成了Java类?如果是,那么instanceof应该可以工作。

代码语言:javascript
复制
switch ent {
  Entity : {
     ...
  }
}

如果要将EClass实例与生成的EPackage中的常量进行比较,可以使用。这大概是这样的:

代码语言:javascript
复制
if (ent.eClass == MyEcorePackage::Entity) {
   ...
}
票数 1
EN

Stack Overflow用户

发布于 2014-03-03 23:27:15

class类型的第一个筛选器EObject。通过typeof(className)将其进一步拆分。

代码语言:javascript
复制
for (clazz : p.EClassifiers.filter(typeof(EClass))) {
         if (clazz.name == typeof(ClassA).simpleName) { clazz.callMethodA;
  } else if (clazz.name == typeof(ClassB).simpleName) { clazz.callMethodB; }
}

EDataTypes执行相同的操作...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14303543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档