【发布时间】:2011-02-02 00:17:01
【问题描述】:
我正在使用 Java 中的 EMF 框架编写一些代码,但它真的很难使用,例如我无法在 EMF 之上实现类型安全的类似 OCL 的查询 API。
其中一个原因是eGet() 的EStructuralFeature 只返回Object,而不是EObject。所以我写的任何东西都必须使用大量的空值检查、类型检查和类型转换,这些都是不安全的、不高效的并且不能以可重用的方式概括。
为什么 EMF 不为任意 Object 值生成带有 EObject 包装器的虚拟实现?
实现EObject 和EClass 接口,即使是简单的抛出UnsupportedOperationException 也确实很痛苦(API 太大)。 eContainer() 方法也是如此,这使得向上导航模型很痛苦。
【问题讨论】:
-
我刚刚意识到 EMF 对 Java 的原始类型及其 Object 等价物有包装器,但问题仍然存在,为什么有返回 Objects 的 API?
标签: eclipse code-generation modeling api-design eclipse-emf