Java 在EMF中定义EEList类型属性时出错

Java 在EMF中定义EEList类型属性时出错,java,eclipse,emf,ecore,Java,Eclipse,Emf,Ecore,在Eclipse中,我试图向EMF模型添加一个列表。 在.ecore模型中: 我在EMF中将一个新类“MyClass”添加到我的模型中 然后将属性“MyList”添加到此类中,将此属性的EType设置为EEList 然后将list元素的数据类型设置为EString 但是,当我尝试打开此模型的genmodel时,出现一个错误,提示: “属性'MyClass.MyList'不是瞬态的,因此它必须具有可序列化的数据类型。” 我做错了什么 提前感谢。您不必“手动”将其作为列表处理。 记住,您正在使用

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

  • 我在EMF中将一个新类“MyClass”添加到我的模型中
  • 然后将属性“MyList”添加到此类中,将此属性的EType设置为EEList
  • 然后将list元素的数据类型设置为EString
但是,当我尝试打开此模型的genmodel时,出现一个错误,提示: “属性'MyClass.MyList'不是瞬态的,因此它必须具有可序列化的数据类型。”

我做错了什么


提前感谢。

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

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