Bonjour,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13

void f (List<? extends Figure> liste){

//Autorisé

Figure ret = liste.get(0);

// Interdit par le compilateur

Cercle ret = liste.get(0);

}

Cette méthode prend en paramètre une liste qui contient des éléments dont le type(inconnu) peut être un sous type de Figure ou peut être de type Figure.


Or, Cercle est un sous type de Figure, alors pourquoi :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
Cercle ret = liste.get(0);

est interdit par le compilateur ?