在 EMF 中使用 eStorage

Use eStorage in EMF

在我的 EObject 中,我有字段 eStorage,其中包含我想使用的数据。

是否可以读出eStorage?

我尝试了下面的代码,但它不起作用:

doIt(EObject object) {
    object.getEStorage;
    // use the eStorage...
}

可能 eStorage 是私有字段。

所以,

  • 重新阅读 EObject 接口的 javadoc and/or 您正在使用的 EObject 的特定实现的 javadoc。您可能会找到一种提供您正在寻找的数据的方法。
  • 通过反射访问私有字段
try {
    Field f = object.getClass().getDeclaredField("eStorage"); 
    f.setAccessible(true);
    Object theDataYouWant = f.get(object);
} catch(Exception e) {
    // Handle exception here...
}

参考文献:How do I read a private field in Java?