我想使用 EMF 定义一个属性,其数据类型 (EType) 在我的 EMF 模型之外。也就是说,我想要的类型是一个普通的手工编码的 Java 类,它不是我的 EMF 模型的一部分。使用 AnySimpleType
是最后的手段。我想要比使用通用 Object
提供更多的类型安全性(和更少的类型转换)。
Eclipse 的属性编辑器将 EType 限制为一组预定义的值。我既无法输入自己的类(class)名称,也无法找到将我想要的类(class)添加到选项列表的方法。
最佳答案
您可以通过手动将 eClassifiers
条目添加到 *.ecore 文件来将数据类型添加到 eCore 模型。 (我找不到通过 Eclipse UI 执行此操作的机制。)
例如:
<eClassifiers xsi:type="ecore:EDataType"
name="MyClass" instanceClassName="my.package.MyClass"/>
这将使该类在 EAttributes 的属性编辑器中作为 EType 的一个选项可用。它似乎无法用于 EReferences。
关于java - 如何创建数据类型不是 EMF 类的 EAttribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18874314/