【问题标题】:Error while defining a EEList Type attribute in EMF在 EMF 中定义 EEList 类型属性时出错
【发布时间】:2017-01-09 03:25:28
【问题描述】:
在 Eclipse 中,我正在尝试向我的 EMF 模型添加一个列表。
在 .ecore 模型中:
- 我在 EMF 中的模型中添加了一个新类“MyClass”
- 然后给这个类添加一个属性“MyList”,设置这个属性的EType为EEList
- 然后将列表元素的 dataType 设置为 EString。
但是当我尝试打开这个模型的 genmodel 时,出现一个错误说:
"属性 'MyClass.MyList' 不是瞬态的,因此它必须具有可序列化的数据类型"。
我做错了什么?
提前致谢。
【问题讨论】:
标签:
java
eclipse
emf
ecore
【解决方案1】:
您不必“手动”处理它作为一个列表。
请记住,您正在使用 UML。
List 只是一个类型的有序关联,其中上限设置为 *。
因此,只需将MyList 添加到MyClass,将其多重性设置为0..-1(通过将其上限设置为-1,这意味着EMF 中的*)并确保关联的Ordered 属性设置为True(否则你会得到一个集合)。还将其类型设置为 EString。
这是一个示例,其中DFA 具有State 类型的列表,根据上述说明。我还将“包含”设置为 true,以使列表对其包含的对象具有强引用(这与内存管理有关,我建议您也这样做)。请注意,我已将类型设置为 State,因为这是 State 对象的列表。