繁体   English   中英

如何创建特定的 Generic 类型类?

[英]How to create specific Generic type class?

我想创建一个只接受Strings的通用类型类ExtendedMap

我尝试了以下代码,但它给了我错误:

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);
    }

}

正如回答中所建议的,我已经更新了代码,但现在它没有编译

简单:省略类型变量。

class ExtendedMap extends HashMap<String, String>

您收到的警告不是语言规范所要求的; 我想这只是您的 IDE 试图确保您输入了您的意思。 但是由于没有扩展String类,类型变量中没有值:省略它们,直接使用String

ExtendedMap类需要扩展String类的某种类型的参数。 但是由于Stringfinal类,所以没有这样的类来扩展它。

因此警告。

正如安迪所说,省略类型变量应该消除警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM