'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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
public Collection<MaClasse> putAllIn(Collection<MaClasse> c);
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).

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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
public <T super MaClasse> Collection<T> putAllIn(Collection<T> c);
mais ça ne marche pas. 'super' semble ne passer qu'avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
public Collection<? super MaClasse> putAllIn(Collection<? super MaClasse> c);
mais le type de retour est inutilisable car il n'y a pas de corresondance avec le type du paramètre.

Est-ce que quelqu'un aurait une solution ou, comme je commence à le penser, c'est impossible ?

Merci.