如何使用特定类扩展HashMap。
public class TestMap<K, V> extends HashMap<K, V>
我希望V成为一个整数。编写整数而不是V覆盖整数类并在使用整数时导致错误(Integer i = 1
不起作用)。我该如何解决这个问题?
答案 0 :(得分:4)
参数化扩展类并仅声明键的类型:
class IntegerMap<K> extends HashMap<K, Integer> {}
然后你可以这样做:
IntegerMap<String> integerByString = new IntegerMap<String>();
integerByString.put("0", 0);
integerByString.put("1", 1);
作为旁注,如果您实际上是在扩展JDK集合类,那么它通常不被认为是一种好的样式。
通常你会编写一个从外面控制Map的类:
class MapController<K> {
Map<K, Integer> theMap;
}
或者也许是以某种方式准备它的方法:
static <K> Map<K, Integer> prepMap() {
Map<K, Integer> theMap = new HashMap<>();
return theMap;
}