【发布时间】:2012-04-21 10:01:06
【问题描述】:
谁能解释一下,为什么下一个代码没有编译?
我正在为它创建一个部分专业化的 Map 和 Map.Entry:
public class Trie<T> implements Map<String, T> {
private class TrieEntry<S> implements Map.Entry<String, S> {
// stupid implementation here
}
// uninterested code here
}
这里一切正常,但是我正在实现 entrySet() 方法:
public Set<java.util.Map.Entry<String, T>> entrySet() {
Set<java.util.Map.Entry<String, T>> x = new HashSet<TrieEntry<T>>();
// some uninterested code here
}
Eclipse 说
“类型不匹配:无法从HashSet<Trie<T>.TrieEntry<T>> 转换为Set<Map.Entry<String,T>>”
所以,在我看来,TrieEntry<T> 应该展开为 Map.Entry<String, T>,它符合定义中的表达式。
我哪里错了?
【问题讨论】: