Bonjour à tous,
J'ai une liste de données que je dois avoir brutes ou ordonnées. Pour cela, j'ai 3 classes :
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 abstract class AbstractResult {} class Result extends AbstractResult{} class OrderResult extends AbstractResult{}
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
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>(); } }
Je reçois le message suivant de la part du compilateur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part result.add(new OrderResult(a, b, c, d));
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.
Partager