'lut,
Je coince sur une utilisation de la généricité. J'ai une classe MaClasse qui étend MaSuperClasse. Des classes tierces en contiennent des brouettes et ont des méthodes du genre :
Cette méthode retourne les objets MaClasse contenus en les plaçant dans la collection passée en paramètre (pour éviter d'instancier des tonnes de collections).
Code : Sélectionner tout - Visualiser dans une fenêtre à part public Collection<MaClasse> putAllIn(Collection<MaClasse> c);
Seulement dans certains cas on aimerait mettre les MaClasse dans une Collection<MaSuperClasse> sans faire deux méthodes différentes. Avec la généricité j'aurais voulu faire :
mais ça ne marche pas. 'super' semble ne passer qu'avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public <T super MaClasse> Collection<T> putAllIn(Collection<T> c);
mais le type de retour est inutilisable car il n'y a pas de corresondance avec le type du paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part public Collection<? super MaClasse> putAllIn(Collection<? super MaClasse> c);
Est-ce que quelqu'un aurait une solution ou, comme je commence à le penser, c'est impossible ?
Merci.
Partager