3

Javaには少なくとも2つのタイプのURIがあります。

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

java.net.URIEMF URIを使用する必要があり、使用する必要があります。前者を後者に変換するにはどうすればよいですか?

試してみるnew URI uri = profileUrl.toURI()と、次のようなメッセージが表示されます。

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

また、から文字列を作成し、新しい文字列を使用して新しいEMF URIを作成する何らかの回避策も試しましたjava.net.URI...これにより、ファイルが見つからないという例外が発生します。

4

1 に答える 1

9

まず最初に、「Javaには2種類のURI」はありません。Javaには1つだけ、モデリング用に構築されたフレームワークであるEMFには1つしかありません。これは独自の概念の1つを反映しているため、またはJavaのURIで許可されている以上のものが必要であるため、独自のURIの実装があります。または...そのような選択にはいくつかの理由があり、多くのフレームワークが独自のバージョンを提供します。またはそのようなクラス(Eclipseでは、ctrl+ shift+を使用Tし、例として「List」または「Array」と入力します)。

実際の質問に関しては、ajava.net.URIから直接移動する方法はありませんorg.eclipse.emf.common.util.URI。JavaURIを文字列に変換してから、この文字列の周りに新しいURIを作成する必要があります。このようなもの:

java.net.URI javaURI = profileUrl.toURI();
org.eclipse.emf.common.util.URI emfURI = org.eclipse.emf.common.util.URI.createURI(javaURI.toString());

2つのURIの少なくとも1つ(Javaクラスにインポートしなかったもの)の完全修飾名を使用する必要があります。あなたの質問から判断すると、あなたはインポートしたと思いますorg.eclipse.emf.common.util.URIので、これを簡単に使用できます:

java.net.URI javaURI = profileUrl.toURI();
URI emfURI = URI.createURI(javaURI.toString());
于 2011-06-08T08:27:51.467 に答える