Je suis en train de mettre en œuvre la structure de données Trie. Lorsque j'utilise la référence de classe externe, j'obtiens l'erreur ci-dessous dans Eclipse IDE.Erreur avec la classe interne java lors de l'accès à la référence de classe externe
La méthode de comparaison (capture # 1 de? Super E, la capture # 1 de? Super E) le type de comparaison est pas applicable pour les arguments (E, E)
public class Trie<E> implements Collection<E> {
private Comparator<? super E> comparator;
private class Entry<E> {
private Entry<E> parent;
private Set<Entry<E>> children;
private E data;
Entry(Entry<E> parent, E data){
this.parent = parent;
this.data = data;
parent.addChild(this);
}
boolean addChild(Entry<E> child){
if (children == null)
children = new TreeSet<Entry<E>>(
new Comparator<Entry<E>>() {
public int compare(Entry<E> o1, Entry<E> o2) {
return Trie.this.comparator.compare(o1.data, o2.data);
};
}
);
return children.add(child);
}
boolean removeChild(Entry<E> child){
boolean result = false;
if (children != null && children.contains(child)) {
result = children.remove(child);
if (children.size() == 0)
children = null;
}
return result;
}
}
}
Comment résoudre?
Ya, a essayé, obtenir cette erreur "La méthode de comparaison (E, E) dans le type n'est pas Comparator applicable pour les arguments (E, E)" –
Nageswaran
pouvez-vous s'il vous plaît envoyer votre code au lieu de l'image? Alors que les gens peuvent essayer et vous donner une solution dès que possible. Et vous voulez votre comparateur comme 'comparateur privé extends E> comparateur? ' –
Le' E' dans votre ombre de classe interne (n'est pas le même que) le 'E' dans votre classe externe; ils se réfèrent à différents types non liés. Publiez également votre code en tant que code, pas en tant que capture d'écran; donc les gens peuvent corriger votre code dans une réponse (ils ne vont pas le taper à nouveau) –