地图与地图<k,v> </k,v>

时间:2011-03-16 09:26:48

标签: java map

我想了解为什么来自Apache Commons的UnmodifiableMap.decorate(Map map)Map上运行并返回Map而不是Map<K,V>。这两种方法有什么区别?

3 个答案:

答案 0 :(得分:4)

我相信Apache Commons集合早于泛型,并且尚未针对它们进行更新。

您可能希望查看this unofficial version这是Apache Commons Collections到泛型的端口,或者在Guava查看支持其他集合的替代库。 (当然还有其他人。)

答案 1 :(得分:2)

我认为这是因为某种向后兼容性。 Map<K,V>只能在Java 5及更高版本中使用。

答案 2 :(得分:1)

乔恩可能是对的。

您可以在重新启动时投射到地图。

Map<K,V> myMap = (Map<K,V>)UnmodifiableMap.decorate(Map map);