C'est étrange, je me suis plongé dans un problème très proche il y a moins d'un mois...
public interface Node<T super classe_implementant, Content>
ce 'super' me gène, il laisserai mettre des objets qui ne sont pas des Nodes (Object par exemple).
Après, il semble que tu souhaites imposer des contraintes fortes à celui qui réalise l'implémentation de ton interface.
Sauf erreur de ma part, tu ne pourras pas faire mieux que :
public interface Node<T extends Node, Content>
Cela laissera évidemment la possibilité de déclarer :
public class MaClasse implements Node<Node, String>
et d'ajouter des nodes de type différent.
Ceci dit, s'il fait cela, il perdra la connaissance que ses Fils seront des 'MaClasse' et sera obligé de les caster en 'MaClasse' (ou autre)...
Partager