1

在 Eclipse 中,我试图将一个列表添加到我的 EMF 模型中。在 .ecore 模型中:

  • 我在 EMF 中的模型中添加了一个新类“MyClass”
  • 然后给这个类添加一个属性“MyList”,设置这个属性的EType为EEList<>
  • 然后将列表元素的 dataType 设置为 EString。

但是,当我尝试打开该模型的 genmodel 时,会出现一条错误消息:“属性 'MyClass.MyList' 不是瞬态的,因此它必须具有可序列化的数据类型”。

我究竟做错了什么?

提前致谢。

4

1 回答 1

2

您不必“手动”处理它作为列表。请记住,您正在使用 UML。List 只是与类型的有序关联,其中上限设置为 *。因此,只需添加MyListMyClass,将其多重性设置为 0..-1(通过将其上限设置为 -1,这意味着 EMF 中的 *)并确保关联的Ordered属性设置为 True(否则您将获得一个 Set)。还将其类型设置为 EString。

这是一个示例,其中 aDFA具有类型 的列表State,根据上述说明。我还将“包含”设置为 true,以使列表对其包含的对象具有强引用(这与内存管理有关,我建议您也这样做)。请注意,我已将类型设置为 State,因为这是 State 对象的列表。

在此处输入图像描述

于 2017-01-08T19:25:28.987 回答