Packages and Factoriespackage和factory类帮助你访问模型的metadata,或者创建模型的实例。通过package可以轻松的获得模型的EClass对象,如: EClass purchaseOrderClass = epo2Package.getPurchaseORder(); 例外还有一种方法也可以通过package类对象获得model的EClass对象,如: EClass purchaseOrderClass = (EClass)epo2Package.getEClassifier("PurchaseOrder"); 可以通过类似的方法访问模型的属性、引用还有其他更多的信息。tip: EEnum是EDataType的子类获得package对象的方法:1.通过加载外部.ecore文件,从加载的Resource对象中获取,如: ResourceSet resourceSet = new ResourceSetImpl();URI fileURI = URI.createURI("/ExtendedPO2.ecore");Resource resource = resourceSet.getResource(fileURI, true);EPackage epo2Package = (EPackage)resource.getContents().get(0); 2.通过package registry来访问,package registry提供了namespace URIs到EPackage的映射关系。如果是插件方式的开发,通过定义扩展点可以在插件加载的时候把package对象注册到registry中,如: <extension point="org.eclipse.emf.ecore.generated_package"> <package uri = "http:///com/example/epo2.ecore" class = "com.example.epo2.EPO2Package" /></extension> 如果不是插件开发方式,可以功过构造函数来将package注册到Registry实例中,如: 注册后可以功过下面代码获得package对象: EPackage.Registry.INSTANCE.getEPackage() 相关文章: 2021-04-19 2021-05-26 2021-11-27 2021-11-20 2022-02-18 2022-01-04 2021-07-26