public Set<V> remove(Object key, Object value) { if (!map.containsKey(key)) return null; Set<V> set = map.get(key); if (set==null) return null; if (set.remove(value)) { return set; } else { return null; } }eclipse报错:The return type is incompatible with Map<K,Set<V>>.remove(Object, Object) MultiValueHashMap.java帮帮我。。。
3 回答

精慕HU
TA贡献1845条经验 获得超8个赞
你这个类实现的java.util.Map接口里面已经声明了一个remove(Object,Object)方法:
boolean remove(Object key, Object value)
你自己的实现类里面也写了一个remove方法,但是方法签名是:
Set<V> remove(Object key, Object value)
由于方法名和参数相同,但是返回值不同,编译器认为你是在覆盖/实现java.util.Map里面的remove方法,但是由于方法的返回值不匹配,
所以编译的时候会报The return type is incompatible with Map<K,Set<V>>.remove(Object, Object)
把你的方法修改名字或者改变参数形式就能通过编译。
Set<V> multiMapRemove(Object key, Object value)

眼眸繁星
TA贡献1873条经验 获得超9个赞
添加回答
举报
0/150
提交
取消