我想创建一个只接受ExtendedMap
Strings
我尝试了以下代码,但它给了我错误:
ExtendedMap类型的put(K,V)必须覆盖或实现 超类型方法
class ExtendedMap<K, V> extends HashMap<String, String> {
private Map<K, Collection<V>> map = new HashMap<>();
@Override
public void put(K key, V value) {
if (map.get(key) == null)
map.put(key, new ArrayList<V>());
map.get(key).add(value);
}
}
正如在回答中所建议的,我已经更新了代码,但现在它没有编译
答案 0 :(得分:1)
简单:省略类型变量。
class ExtendedMap extends HashMap<String, String>
您收到的警告不是语言规范规定的警告;我想这只是你的IDE试图确保你输入你的意思。但由于没有扩展String
的类,因此类型变量中没有值:省略它们,并直接使用String
。
答案 1 :(得分:0)
ExtendedMap
类需要扩展String
类的某些类型的参数。但由于String
是final
类,因此没有这样的类可以扩展它。
因此警告。
正如安迪所说,省略类型变量应该摆脱警告。