我試圖創建一個版本的HashMap,如果輸入了一個重複的鍵,但不會替換該值,但實際上會將兩個對應的值一起添加。鍵值必須爲Number
,以便可以進行添加。然而,它似乎並不理解我的V
是Number
類型,或者至少在我嘗試撥打super.put
之前。就好像在HashMap
與我聲明的extend Number
不一樣V
。具有參數化集合的泛型?
這是怎麼回事?
public class AdditiveMap<K, V extends Number> extends HashMap<K, V>
{
@Override
public V put(final K key, final V value)
{
if (containsKey(key))
// Second param Found 'Number', required 'V'
super.put(key, (Number)(get(key).intValue() + value.intValue()));
else
super.put(key, value);
}
}
消息是說'Integer'與'V'不一樣,這當然是正確的。 –
這是不是''合併'方法是在'Map'接口中設計的? –
@OliverCharlesworth'V' extends Number – Hatefiend