Bonjour à tous,

J'ai une liste de données que je dois avoir brutes ou ordonnées. Pour cela, j'ai 3 classes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
abstract class AbstractResult {}
class Result extends AbstractResult{}
class OrderResult extends AbstractResult{}
J'écris une méthode générique qui pourra remplire une liste avec les données avec comme paramètre un boolean pour dire quel type de list on veut :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
private List<? extends AbstractResult> createGenericResults(boolean ordered) {
	// Create result type
	List<? extends AbstractResult> result;
	if(ordered) {
		result = new ArrayList<OrderResult>();
	} else {
		result = new ArrayList<Result>();
	}
}
Le problème, se situe dans la méthode générique, lorsque je tente de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
result.add(new OrderResult(a, b, c, d));
Je reçois le message suivant de la part du compilateur:
The method add(capture#5-of ? extends AbstractResult) in the type List<capture#5-of ? extends AbstractResult> is not applicable for the arguments (OrderResult)

Comment puis-je fair pour qu'il accepte de remplir ma liste de façon générique ???

Un grand merci d'avance.