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
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.
        .....
    }
Classe fille:
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>
 
    }
}
Merci pour els reponses.