Bonsoir,

Je tente de redéfinir le composant JComboBox (et son model) de façon à gérer une Combo typée de façon à garantir que la Combo ne contienne que des objets de type T.
J'ai donc défini une classe typée qui hérite de JComboBox. Par contre, je tombe sur des incohérences. En effet, je souhaiterai redéfinir des méthodes qui prennent en paramètre (ou qui retournent) un type Object. Or je souhaiterai que les méthodes surchargées utilisent le type paramétré T plutôt que Object.
Exemple :

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
 
public class JComboBox extends JComponent 
implements ItemSelectable,ListDataListener,ActionListener, Accessible {
 
...
    public void addItem(Object anObject) {
            ...
    }
...
 
    public Object getItemAt(int index) {
        return dataModel.getElementAt(index);
    }
...
}
que je voudrais surcharger de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public class TypedComboBox<T> extends JComboBox {
...
    public void addItem(T anObject) {
           ...
    }
...
    public T getItemAt(int index) {
           ...
    }
...
}
Or le compilateur n'aime pas le changement de signature, comment faire pour résoudre ce problème ? ou pour le contourner ?

Merci.