Apache Commons Collections庫的4.0版本添加了泛型支持。我無法轉換我的代碼以利用它:使用自定義值集合類型創建Commons Collections MultiValueMap
我想要一個MultiValueMap
它將一個字符串作爲關鍵字,並將字符串集合作爲值。但是:
- 的關鍵應保留插入排序
- 值應 唯一針對每一個琴鍵並保留插入排序(所以我用裝飾
LinkedHashMap
創建 多值圖)(所以我想要的 值集合類型爲LinkedHashSet
)。
我能得到的最接近的是:
MultiValueMap<String, String> orderedMap = MultiValueMap.multiValueMap(
new LinkedHashMap<String, Collection<String>>(),
LinkedHashSet.class
);
但是,產生錯誤:
The method
multiValueMap(Map<K,? super C>, Class<C>)
in the typeMultiValueMap
is not applicable for the arguments(LinkedHashMap<String,Collection<String>>, Class<LinkedHashSet>)
所以,現在我在泛型地獄。任何建議將是最受歡迎的。
此前4.0版本的,我做到了這一點與以下:
MultiValueMap orderedMap = MultiValueMap.decorate(
new LinkedHashMap<>(),
LinkedHashSet.class
);
簡單!我提供LinkedHashMap
以用MultiValueMap
行爲進行修飾,並指定用作值的集合類型(LinkedHashSet
)。但是這需要投射時,我打電話put()
和get()
,所以我想能夠使用4.0提供的新的通用版本。
多數民衆贊成在一個恥辱,SetValuedMap看起來像我想要的 –