将java.net.URI转换为org.eclipse.emf.common.util.URI

3

Java中至少有两种类型的URI:

  • java.net.URI
  • org.eclipse.emf.common.util.URI

我拥有java.net.URI并需要使用EMF URI。如何将前者转换为后者?

如果我尝试new URI uri = profileUrl.toURI(),我会得到如下消息:

Type mismatch: cannot convert from java.net.URI to org.eclipse.emf.common.util.URI

我还尝试了一些解决方法,从java.net.URI创建一个字符串,然后用这个新字符串创建一个新的EMF URI... 但是这导致了文件找不到的异常。

1个回答

10
首先,Java 中并不存在“两种类型的 URI”,只有一种,而 EMF 是一个用于建模的框架,它有自己的 URI 实现。这是因为这反映了它们自己的概念,或者需要比 Java 的 URI 更多的功能,或者... 对于这样的选择可能有许多原因,许多框架提供了它们自己版本的某些类(在 Eclipse 中,使用 ctrl + shift + T 并键入“List”或“Array”进行示例)。
至于实际问题,不能直接从 java.net.URI 转换为 org.eclipse.emf.common.util.URI:您需要将 Java URI 转换为字符串,然后创建一个围绕该字符串的新 URI。类似以下内容:
java.net.URI javaURI = profileUrl.toURI();
org.eclipse.emf.common.util.URI emfURI = org.eclipse.emf.common.util.URI.createURI(javaURI.toString());

您需要使用至少两个URI中未在Java类中导入的完全限定名称。根据您的问题,我想您已经导入了org.eclipse.emf.common.util.URI,因此可以简单地使用此代码:

java.net.URI javaURI = profileUrl.toURI();
URI emfURI = URI.createURI(javaURI.toString());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接