Bonjour à tous,

voilà, ma question est très simple. Pourquoi ne puis-je pas effectuer un cast
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ArrayList<ArrayList<Truc>> ar = ...;
Collection<Collection<Truc>> col = (Collection<Collection<Truc>>)ar; //ne fonctionne pas
alors que le cast suivant fonctionne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ArrayList<Truc> ar = ...;
Collection<Truc> col = (Collection<Truc>)ar; //fonctionne
Plus particulièrement, mon problème est le suivant:
J'ai une méthode dans un interface ayant pour type de retour Collection<Collection<Truc>>.
Dans les classes l'implémentant, il est nécessaire de la surcharger.
Ces classes travaillent de manière interne avec des ArrayList<ArrayList<Truc>>
Je ne peux pas faire de cast pour le retour, et la jvm ne semble pas "comprendre" que c'est bon d'un point de vue de types.

Pourquoi ? Comment faire pour éviter ça ?

Merci d'avance pour vos réponses.