Apache Commons Collections库的4.0版本增加了泛型支持.我无法转换代码以利用它:
我想要一个MultiValueMap,它将String作为键,并将一个字符串集合作为值.但:
>键应该保留插入顺序(所以我创建了
通过装饰LinkedHashMap的多值地图)
>值应该是
每个键都是唯一的,并保留插入顺序(所以我想要
值集合类型为LinkedHashSet).
我能得到的最接近的是:
MultiValueMap orderedMap = MultiValueMap.multiValueMap(
new LinkedHashMap>(),
LinkedHashSet.class
);
但是这会产生错误:
The method multiValueMap(Map, Class) in the type
MultiValueMap is not applicable for the arguments
(LinkedHashMap>, Class)
所以现在我在仿制药地狱.任何建议都是最受欢迎的.
在4.0版之前,我通过以下方式实现了这一目标:
MultiValueMap orderedMap = MultiValueMap.decorate(
new LinkedHashMap<>(),
LinkedHashSet.class
);
简单!我提供了LinkedHashMap来装饰MultiValueMap行为,并指定要用作值的集合类型(LinkedHashSet).但是当我调用put()和get()时需要进行转换,所以我希望能够使用4.0提供的新通用版本.