j'ai une methode qui sert a parcourir dans un certain ordre une structure arborescente.
Cette methode est récursive et doit pouvoir retourner une liste de noeud.
Ces noeud peuvent etre de Type Node ainsi que des object heritant de Node
public <T extends Node> ArrayList<T> iterateByPostOrder(T node)
Pourquoi pas simplement écrire:
public ArrayList<Node> iterateByPostOrder(Node node)
Si c'est bien une liste de noeuds... J'ai peut-être tort et peut-être que c'est insuffisant dans ton contexte mais ça a le mérite de faire sauter le cast.
J'ai une classe qui fait quelque chose de similaire et je rajoute le "<T extends Node>" (enfin l'équivalent chez moi) ça crée ton problème. Si ta classe défini directement le type
public abstract class AbstractContent<T extends Node>{
public ArrayList<T> iterateByPostOrder(T node)
}
}
Tu as la sécurité que T extends de Node.
Si tu ne peux pas faire autrement corrige déjà ce point :
En effet, si le ne me trompe pas, la notation <? extends Object> est exclusive, tu ne peux pas mettre d'objet du type Object dans une collection notée comme ça, il faut obligatoirement que ton Objet hérite d'Object.
Ok, je potasse tout cela et je trouverai bien une solution
Merci pour votre aide
Le jour où Microsoft fera des choses qui ne plantent pas, ça sera des clous ...
[QST] Généricité et retour de methode
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.