API 的 Java 版本和 COM 版本的差别
Rhapsody® API 的 Java™ 和 COM 版本之间存在一些特定差异。
- API 的 Java 版本中的方法抛出 RhapsodyAPIException 异常。 您可以使用 toString 方法以获取异常的描述。
- IRPCollection 提供了一个名为 toList 的方法,该方法返回使用集合元素填充的本机 Java 列表容器。 这是使用 Java 版本的 API 对集合进行迭代的建议方法。 (在 Java 1.5中,可以将列表强制转换为类型列表,从而受益于 for-each 迭代器。)
- 与必须使用 IDispatch ::QueryInterface 方法的 API 的 COM 版本不同,在 Java 版本中,可以使用本机 Java 操作程序 instanceOf。
- 在 API 的 Java 版本中,要检查两个接口是否指向同一模型元素,请使用本机布尔值 Object.equals(Object) 方法。
- 在 Rhapsody API 的 COM 版本中,从发行版 8.3.1 开始添加的任何方法都属于将 2 附加到接口名称的接口,例如 IRPDiagram2.CreateDiagramView。 通过查询相关接口访问这些方法。
例如,您可以查询 IRPDiagram2 接口来访问 IRPDiagram2 中的新方法:
// pDiagram is an instance of IRPDiagram IRPDiagram2* pIRPDiagram = NULL; hr = pDiagram->QueryInterface(IID_IRPDiagram2, (void**)&pIRPDiagram); if(SUCCEEDED(hr)) pIRPDiagram->CreateDiagramView(…在此情况下,访问添加到 IRPModelElement2 的新方法的另一个示例:
// pClass is an instance of IRPClass IRPModelElement2* pIRPModelElement = NULL; hr = pClass->QueryInterface(IID_IRPModelElement2, (void**)&pIRPModelElement); if(SUCCEEDED(hr)) pIRPModelElement->getRmmUrl(…