【发布时间】:2017-07-06 17:59:15
【问题描述】:
给定任何Class<?> clazz 对象,是否有API 可以获取模型实例实现clazz 的EClass? (即eClass 的eClass.getInstanceClass().equals(clazz) 为真)
如果我有eObject,我可以简单地调用eObject.eClass() 来获取EClass。但就我而言,我没有这样的例子。我只有一个模型实例类,需要关联的EClass 来调用EcoreUtil.create(eClass)。
【问题讨论】:
-
你能举一个你必须使用它的例子吗?您是从
obj.getClass()获得clazz,其中obj是EObject实例,还是在代码中使用InterfaceName.class获得clazz(例如:在UML 中,Activity.class)? -
@VincentAranega 我使用
InterfaceName.class,因为那时我没有任何obj。它想提供方法create(InterfaceName.class)作为create(eClass)的替代方法,因为它可以是类型安全的,而且据我所知,要获得EClass,我需要通过名称(ePackage.getEClassifier("MyClass"))获取它,或者我会需要使用我想避免的对MyPackage.Literals.MY_CLASS的奇怪引用 -
好吧好吧。我想我有一个解决方案给你:)(我正在写下来)。