4

这是我应该知道的,但我在上面画了一个空白,并且在尝试通过谷歌找到答案时遇到了惊人的困难。

我正在尝试扩展 Java Collection,特别是ConcurrentHashMap. 我想创建自己的哈希映射类以用于非通用键/值对,特别是使用我自己的类。

所以我已经这样定义了这个类:

public class hashMap extends ConcurrentHashMap<class1, class2>

问题是我忘记了如何正确编写构造函数,以便它们是非泛型的。例如,对于原始的concurrentHashMap,您必须调用其构造函数来指定键/值对的类。我只想简单地调用构造函数hashMap(),而不需要指定那些泛型。

我试过调用super<class1, class2>();构造函数,但这给了我一个错误。

这似乎应该是非常简单的事情,而且我很肯定我曾经知道如何做到这一点,但是已经有一段时间了,就像我说的那样,我正在画一个空白。

谢谢。

4

1 回答 1

6

简单明了super();会起作用——或者根本不起作用,因为它是隐含的。请记住,这new HashMap<String,Integer>();并不是真正意义上的方法调用的构造函数调用:它是实例化 + 构造函数参数的类型规范。构造函数本身不接收类型参数,它们仅作为调用站点类型信息存在。

于 2012-08-23T21:24:56.380 回答