在 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?
在我的 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?