在 Eclipse 中,我试图将一个列表添加到我的 EMF 模型中。在 .ecore 模型中:
- 我在 EMF 中的模型中添加了一个新类“MyClass”
- 然后给这个类添加一个属性“MyList”,设置这个属性的EType为EEList<>
- 然后将列表元素的 dataType 设置为 EString。
但是,当我尝试打开该模型的 genmodel 时,会出现一条错误消息:“属性 'MyClass.MyList' 不是瞬态的,因此它必须具有可序列化的数据类型”。
我究竟做错了什么?
提前致谢。
您不必“手动”处理它作为列表。请记住,您正在使用 UML。List 只是与类型的有序关联,其中上限设置为 *。因此,只需添加MyList到MyClass,将其多重性设置为 0..-1(通过将其上限设置为 -1,这意味着 EMF 中的 *)并确保关联的Ordered属性设置为 True(否则您将获得一个 Set)。还将其类型设置为 EString。
这是一个示例,其中 aDFA具有类型 的列表State,根据上述说明。我还将“包含”设置为 true,以使列表对其包含的对象具有强引用(这与内存管理有关,我建议您也这样做)。请注意,我已将类型设置为 State,因为这是 State 对象的列表。