【问题标题】:EMF does not generate list with typeEMF 不生成具有类型的列表
【发布时间】:2014-09-12 21:21:41
【问题描述】:

我正在尝试创建一个代表我的模型的 ecore 文件。

但是我遇到了问题,因为当我生成模型时, java文件包含

EList getFunctions();

而不是

EList<Function> getFunctions();

在哪里可以选择 EMF 将类型添加到列表中?

编辑: 我确实指定了属性。这是我的配置截图:

这是为 FunctionCall 生成的接口(我删除了自动生成的 cmets):

import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;

public interface FunctionCall extends EObject {

    Function getSource();
    void setSource(Function value);

    Function getTarget();
    void setTarget(Function value);

    DependencyGraph getDg();
    void setDg(DependencyGraph value);

    EList getBendpoints();

} // FunctionCall

问题“已解决”:

在玩了很久但没有成功之后,我重新安装了 Eclipse(并且还完全清除了我的设置和项目设置)。我重新导入了我的项目,它现在似乎可以工作了。 不过不知道为什么……

【问题讨论】:

  • 这里有什么解决办法吗?我遇到了同样的问题
  • 检查你的'.genmodel'文件配置,也许你让java-1.5兼容?
  • 嗨,原来我的 Eclipse 安装完全搞砸了,完全重新安装(包括新下载)后它运行良好。

标签: eclipse emf ecore


【解决方案1】:

您可以在 EType 属性中指定类型。要将属性指定为 EList,您需要将上限设置为 -1。

【讨论】:

  • @S.K 你能更具体地谈谈这个问题吗?您能否分享一下从 FunctionCall 类生成的 java 文件?
  • 问题也在这里可见:link 如果滚动到 Multiplicity-many references,您可以看到方法 getBooks() 返回EList 而不是 EList&lt;Book&gt;。这个例子是否使它更容易理解?
  • 你可以尝试创建一个新的 EReference 子代而不是 EAttribute 并告诉我吗?
  • 我已经在另一个实体中做过。这是相同的行为...:/
  • 我在org.eclipse.draw2d (GEF) 上创建了一个插件依赖项,然后将其定义为EData Type。文档说它是这样工作的。我对参考没有任何问题。在 DependencyGraph 中,我有两个 Functions 和 FunctionCalls 列表(都是 EObject),它们表现出相同的行为。
猜你喜欢
  • 2010-11-14
  • 2010-11-02
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 2011-01-04
  • 2016-06-11
  • 1970-01-01
相关资源
最近更新 更多