誰かが説明できますか、なぜ次のコードがコンパイルされないのですか?
部分的に特殊化された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>
あり、それは定義の表現と一致しています。
私はどこが間違っていますか?