12

ListwithStringオブジェクトを含む Eclipse EMF を使用してクラスを作成したいと考えています。Ecore には がありますEListが、リストのジェネリック型を変更できません。

これを行う方法はありますか?

4

2 に答える 2

17

を与えるコードを生成したい場合は、新しいを にEList<String>追加し、 を与え、その「上限」プロパティを「-1」に設定します。EAttributeEClassEType EString

BasicEListこのようなリストをプログラムで作成する場合は、たとえば ( org.eclipse.emf.common.util.BasicEList<E>)を使用できます。

EList<String> stringList = new BasicEList<String>();

他のオプションを表示したい場合は、次の型階層を開きます。org.eclipse.emf.common.util.AbstractEList<E>

于 2012-07-18T18:03:43.980 に答える
8

あなたの質問が答えられたかどうか、そしてあなたが実際に何をしたいのかわかりません。

.ecore ファイルから Java コードを生成する場合は、Eclipse Juno の EMF のサンプル Ecore モデル エディター (.ecore ファイルを右クリック) を使用した例をここに示します。

直接あなたが望むものではないかもしれませんが、これは他の誰かにとって役立つかもしれません.

生成された Java クラス MyClass に次のようなメソッドが必要だとします。

<T extends String> EList<T> getListOfType(Class<T> T)

Sample Ecore Model Editor で、Ecore Editorでメソッドがどのように見えるかを達成したいと考えています。

  • EOperation の「新しい子」を MyClass に追加し、getListOfType という名前を付けます。
  • getListOfType に ETypeParameter の「新しい子」を追加し、T という名前を付けます
  • EGeneric Bound Type の「New Child」を T に追加すると、「T extends ?」が表示されます。「T」の代わりに
  • 「T extends ?」の矢印をクリックし、「?」をクリックし、「Property」ウィンドウで EClassifier のドロップダウン メニューから EString を選択すると、「T extends EString」と表示されます。

  • getListOfType に EGeneric 戻り型の「新しい子」を追加します

  • 新しく作成された「?」をクリックします。戻り型の場合、EClassifier のドロップダウン メニューから EEList を選択します
  • EEList の矢印を開き、プロパティ ウィンドウで、EType パラメータのドロップダウン メニューから「T extends EString」を選択します。

  • 「EParameter」の「新しい子」を getListOfType に追加します

  • 新しく作成したパラメーター「null」のプロパティ ウィンドウで、Name を「clazz」、EType を「EJavaClass」に選択します。
  • 新しい「?」のプロパティ ウィンドウで (ノード「clazz: EJavaClass」の 2 レベル下)、「T extends EString」として EType パラメータを選択すると、「clazz: EJavaClass」は「clazz: EJavaClass」になります。

これで、.ecore ファイルを使用して Java クラスを生成する準備が整いました。

メソッドが Ecore エディターでどのように表示されるか

于 2013-07-17T09:30:32.753 に答える