实现和泛型,如 MyIterator<Entry<Key,Value>>
Implementation and generics like MyIterator<Entry<Key,Value>>
我要写这个
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>
感谢您的回答。
这有帮助吗?
import java.util.Map.Entry;
abstract class OpenAddressingHashIterator<Key,Value>
implements Iterator<Entry<Key,Value>> {
}
首先我们不能使用真实类型来使用泛型来定义新类型。所以在 OpenAddressingHashIterator> 中 Entry 将是简单的词,而不是具体类型(不是 Map.Entry),而在 Iterator> 中我们得到错误,因为编译不知道类型 Entry,因为类型将在运行时设置。还有一刻,当我们使用这个构造 OpenAddressingHashIterator implements Iterator> 时,就像指定 @jas 一样,我们实现了 Iterator 接口,但是它已经使用类型 Map.Entry。 Map.Entry泛型,我们可以写成Map.Entry。所以 Iterator> 给出方法签名并返回 type/argument 函数入口。但是 Iterator 中的 Map.Entry 在运行时获取它们的键和值。
我要写这个
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>
感谢您的回答。
这有帮助吗?
import java.util.Map.Entry;
abstract class OpenAddressingHashIterator<Key,Value>
implements Iterator<Entry<Key,Value>> {
}
首先我们不能使用真实类型来使用泛型来定义新类型。所以在 OpenAddressingHashIterator> 中 Entry 将是简单的词,而不是具体类型(不是 Map.Entry),而在 Iterator> 中我们得到错误,因为编译不知道类型 Entry,因为类型将在运行时设置。还有一刻,当我们使用这个构造 OpenAddressingHashIterator implements Iterator> 时,就像指定 @jas 一样,我们实现了 Iterator 接口,但是它已经使用类型 Map.Entry。 Map.Entry泛型,我们可以写成Map.Entry。所以 Iterator> 给出方法签名并返回 type/argument 函数入口。但是 Iterator 中的 Map.Entry 在运行时获取它们的键和值。