java,返回错误

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


帮帮我。。。


慕沐林林
浏览 949回答 3
3回答

精慕HU

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

眼眸繁星

你的这个map是MultiValueHashMap吧,你怎么声明这个MultiValueHashMap的?是MultiValueHashMap<Object, Object>还是MultiValueHashMap<Object, Set<Object>>?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java