实现和泛型,如MyIterator <entry <key,value>&gt; </entry <key,value>

时间:2015-03-21 14:40:09

标签: java generics

我想写这个

    private final class OpenAddressingHashIterator<Entry<Key,Value>> 
implements Iterator<Entry<Key,Value>> {
}

但我不能和我不明白为什么:( 但是这项工作:

    public class OpenAddressingHashMap<Key,Value> extends
AbstractMap<Key,Value> implements Map<Key,Value>

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

这有用吗?

import java.util.Map.Entry;

abstract class OpenAddressingHashIterator<Key,Value> 
   implements Iterator<Entry<Key,Value>> {
}

答案 1 :(得分:0)

首先,我们不能使用真实类型来使用泛型来定义新类型。所以在OpenAddressingHashIterator&gt;输入将是简单的单词,而不是具体类型(不是Map.Entry),并且在Iterator&gt;中我们得到错误,因为编译没有任何关于类型Entry的知识,因为类型将在运行时设置。还有一点,当我们使用这种构造时,OpenAddressingHashIterator实现了Iterator&gt;,就像指定@jas一样,我们实现了Iterator接口,但是已经使用了Map.Entry类型。 Map.Entry泛型类型,我们可以编写Map.Entry。那么Iterator&gt;给出带有返回类型/参数函数Entry的方法签名。但Iterator中的Map.Entry在运行时获取其Key和Value。