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

标签 url eclipse-plugin uri eclipse-emf emf

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...这会导致找不到文件异常(exception)。

最佳答案

首先,Java 中没有“两种类型的 URI”:Java 中只有一种,EMF 中只有一种,EMF 是为建模而构建的框架。他们有自己的 URI 实现,因为这反射(reflect)了他们自己的一个概念,或者他们需要的不仅仅是 Java 的 URI 所允许的,或者......这样的选择可能有很多原因,许多框架都提供了他们自己的这样的版本或此类(在 Eclipse 中,使用 ctrl + shift + T 并键入“List”或“Array”作为示例)。

至于实际问题,没有办法直接从 java.net.URIorg.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());

关于url - 将 java.net.URI 转换为 org.eclipse.emf.common.util.URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6275766/

相关文章:

java - 资源文件夹路径问题

java - 生成缺失的 Bpmn 图元素

URL 的 Java Android 重定向不起作用

url - Chrome 浏览器不喜欢没有 http ://? 的 *.loc 域

url - 如何在 Sass 中使用 @use 谷歌字体 URL?

http - URI 是否包含协议(protocol)?

android - 意向 Pebble 应用商店

swift - 使用swift从URL中删除参数

java - Eclipse 插件 - 创建带有表的 View

c - uriparser : how to build it?