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