这是我应该知道的事情,但我对此一片空白,并且在尝试通过谷歌找到答案时遇到了惊人的困难。
我正在尝试扩展 Java Collection
,特别是 ConcurrentHashMap
.我想创建我自己的 HashMap 类以用于非通用键/值对,特别是使用我自己的类。
所以我定义了这个类:
public class hashMap extends ConcurrentHashMap<class1, class2>
问题是我忘记了如何正确编写构造函数以使它们不是通用的。例如,原始的 concurrentHashMap
,您必须调用其构造函数指定键/值对的类。我只想简单地调用构造函数 hashMap()
, 而无需指定那些泛型。
我试过调用 super<class1, class2>();
在构造函数中,但这给了我一个错误。
这看起来应该是非常简单的事情,我很肯定我曾经知道如何做到这一点,但是已经有一段时间了,就像我说的我正在画一个空白。
谢谢。
最佳答案
很简单super();
将起作用——或者根本不起作用,因为它是隐含的。请记住 new HashMap<String,Integer>();
在方法调用的相同意义上,它并不是真正的构造函数调用:它是要实例化的类型 + 构造函数参数的规范。构造函数本身不接收类型参数,它们仅作为调用站点类型信息存在。
关于java - 集合的非泛型子类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100151/