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