Bonjour
J'ai une classe mere dont le constructeur a pour argument List<Deletable> que j etends et call super(List<Site>) ce qui compile une erreur.
J'ai pense a changer le constructeur de la classe mere List<? extends Deletable>, ce qui me permet de construire la classe fille sans probleme, mais toutes les operation sur la list posent alors probleme.
Je cherche donc un moyer de contourner ceci.
Note sur les objects: Site extends Deletable.
Classe mere
Classe fille:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /* 1ere solution le call de super compile une erreur dans la classe fille*/ public abstract class DeletableComboBoxModel extends ..{ protected List<Deletable> list; public DeletableComboBoxModel(List<Deletable> aList){ list = aList; } /* 2eme solution le call de super dans la classe fille passe mais les operations sur la list posent un probleme*/ public abstract class DeletableComboBoxModel extends ..{ protected List<? extends Deletable> list; public DeletableComboBoxModel(List<? extends Deletable> aList){ list = aList; } //Implements MutableComboBoxModel public void addElement(Object anObject) { list.add( (Deletable)anObject ); //Ceci compile va compiler une erreur. ..... }
Merci pour els reponses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class SiteComboBoxModel extends DeletableComboBoxModel { public SiteComboBoxModel() { super( DAOFactory.getSiteDAO().getRecordList() ); // DAOFactory.getSiteDAO().getRecordList() return List<Site> } }
Partager