当前位置: 首页 > 知识库问答 >
问题:

Eclipse EMF:如何按名称访问EAttribute?

曾沛
2023-03-14

我有一个Java方法,它被传递一个字符串和一个EMF eObject。字符串是eObject属性的名称。例如,如果向它传递“foo”和EObject eobj,那么它将需要访问eobj.getFoo()。我知道如何从EAttibute的featureID中获取它的值,但似乎找不到通过属性名获取它的方法。这有可能吗?

共有1个答案

殷烨
2023-03-14

下面的应该能做到这一点,但一点也不优雅。它获取eObjecteClass,按名称查找匹配的属性定义并访问它。这里使用的geteAllAttributes()还包括父类定义的属性。

    EObject eObject = null;
    String attributeName = "";
    EDataType resultingDataType = null;
    EList<EAttribute> eAllAttributes = eObject.eClass().getEAllAttributes();
    for (EAttribute eAttribute : eAllAttributes) {
        if (eAttribute.getName().equals(attributeName)) {
            resultingDataType = (EDataType) eObject.eGet(eAttribute);
        }           
    }
    System.out.println(resultingDataType);
 类似资料:
  • 问题内容: 如您所见,该回调函数从控制器获取数据。 例如: 在这种情况下,我的第一个警报给了我未定义的内容,第二个/第三个警报弹出窗口显示为: 如何按名称访问值,以便我的第一个警报填写的值是? 问题答案: 代替解析JSON,您可以执行以下操作: 要访问JSON的属性,请执行以下操作: 为什么需要数据,因为数据是一个数组,所以需要对其内容进行检索(第一个元素),它为您提供了一个object 。 并访

  • 我有一个关于ES6导入模块的问题。 我试图在我的Three.js代码中添加OrbitControl。由于OrbitControls是一个单独的模块,我需要在我的代码中分别导入它们,如下所示。它工作得很好。 然而 我首先想到的是 原因是, 据我所知,如果模块将某些内容导出为导出默认值, 我可以通过在“导入”代码中添加花括号来访问它们。 但是,它没有起作用,因此我假设“三个orbitcontrols”

  • 问题内容: 我正在尝试创建一个BMI计算器。这应该允许人们使用公制或英制。 我意识到我可以使用隐藏标签来解决问题,但是以前这使我很头疼,所以我想问一下:我可以用来查找提交的variableName字段值;但是…我不知道,也不知道如何验证 用于 提交变量的表单。 我的代码如下(尽管我不确定它是否与问题严格相关): 我通过metric验证了它的有效性(尽管目前尚无验证-我不想让我的问题太多)。我已经添

  • 问题内容: 我正在使用类似的东西: 这给了我这样的输出: 我想访问键[0]中的字符串值。当我尝试做类似的事情时: 我收到此错误: 解析错误:语法错误,意外的T_DNUMBER 这两个数字/整数似乎有问题。 问题答案: PHP7.2引入了一种行为上的更改,以转换对象和数组类型转换中的数字键,从而解决了这一特殊的不一致问题,并使以下所有示例的行为均符合预期。 少一件值得困惑的事情! 原始答案(适用于7

  • 问题内容: 是否可以通过名称来在页面上查找JavaScript变量(将其作为对象)?变量名可用作字符串常量。 问题答案:

  • 我写了下面的代码: 但不幸的是,它给了我以下例外: servlet com.google.appengine.api.files中出现未捕获的异常。com.google.appengine.api.files.FileServiceImpl.translateException(FileServiceImple.java:597)中的FinalizationException位于com.goole