2016-12-14 14 views
0

私はオブジェクトのコレクションを持っています。Oから、2つのフィーチャ(例えば、O.nameO.value)の(不変の)マップを作成します。Xtendのペアのコレクションから不変のマップを作成する

私の最善の解決策は、これまで

newHashMap(o.map[it.name -> it.value]) 

である。しかし、これは私が欲しいものacuallyされていないHashMap新をインスタンス化し、初期化します。しかし、これはO.valueからOをマップ - 代わりに私が同様に何

o.toInvertedMap[value] 

戻り、不要なインスタンス化せずに不変のマップをしたいです。

Xtendライブラリに、私が望むものを実現する方法がありますか?

注:私は実際に私のEMF EObject秒間属性名と値のマップを取得したい、上記の私の一般的な質問にいくつかのコンテキストを追加します。

newHashMap(eObject.eClass.EAttributes.map[it.name -> eObject.eGet(it).toString]) 

編集:

私はこれを見つけました:

newImmutableMap(o.map[it.name -> it.value]) 

私は欲しいです。これはそれを書くための「最良の」方法ですか?

答えて

0

私がこれまでに発見した最良の方法は、(上記のアップデートのように)です:

newImmutableMap(o.map[name->value]) 
0
o.map[name->value].toImmutableMap? 
+0

'o.map [名 - >値]' 'リスト>'を生み出します。私が見る限りでは、これには拡張メソッド 'toMap'や' toImmutableMap'はありません。 ( 'toMap(computeKeysFunction)'がありますが、ペアのリストをマップに変換することはできません。 –

関連する問題