[Language][Generics]Généraliser une méthode existente
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:
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:
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.