java,返回错误
伊谢尔伦
伊谢尔伦 2017-04-17 17:47:26
[Java讨论组]
public Set remove(Object key, Object value) {
    if (!map.containsKey(key)) return null;
    
    Set 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>.remove(Object, Object) MultiValueHashMap.java

帮帮我。。。

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
阿神

请问你的<V>泛型是怎么来的

PHP中文网

你这个类实现的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)
高洛峰

你的这个map是MultiValueHashMap吧,你怎么声明这个MultiValueHashMap的?是MultiValueHashMap<Object, Object>还是MultiValueHashMap<Object, Set<Object>>?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号