我使用EMF生成了一些类,现在我想实例化它们。我创建了与模型和元模型相关联的xmi文件。现在我想在我的程序中加载模型作为实例,但它不断抛出NullPointerException。
我的代码是:
Map<String,Object> registry = EPackage.Registry.INSTANCE;
String workflowURI = ExcelEditorPackage.eNS_URI;
System.out.println(workflowURI);
ExcelEditorPackage wfPackage = (ExcelEditorPackage) registry.get(workflowURI); //throw NPE here
ExcelEditorFactory wfFactory = wfPackage.getExcelEditorFactory();
Page workflow = wfFactory.createPage();
它会抛出一个wfFactory,因为wfPackage为null。我的NS URI是“http://www.sg/model”(此URL不存在)。
答案 0 :(得分:0)
NS URI表示名称空间URI。这是java中xml相当于的包。显然,EMF运行时无法加载与您指定的URI关联的包。检查您指定的URI是否正确。
答案 1 :(得分:0)
它会抛出一个wfFactory,因为wfPackage为null。
如果NPE确实在您指定的行处抛出,则无法发生,因为wfPackage
为null
。实际上,它必须表明registry
是null
。
我的NS URI是“http://www.sg/model”(此URL不存在)。
那应该不重要。 NS URI只是一个“唯一名称”,表示模型的XML命名空间。它不必是可解析的。