Bonjour,

J'ai un petit problème de compréhension sur la généricité.
J'ai créer un formulaire avec swing. Ce formulaire contient des objets implémentant une interface Field ce qui me permet d'appliquer d'une façon générale les méthodes setValue(value) et getValue().

Mes objets étendent donc nécessairement la classe JComponent pour pouvoir les ajouter à un conteneur et implémentent l'interface Field.

Ma class Form set donc paramétrée comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
class Form<T extends JComponent & Field>
Ceci étant je ne pense pas m'y prendre de la bonne manière étant donné que je dois me trimbaler la déclaration de ce type dans toutes les classes qui utilisent la class Form :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
class A<T extends JComponent & Field>{
    private Form<T>;
}
 
class B<T extends JComponent & Field>{
    private Form<T>;
    private List<T> liste;
}
J'ai aussi remarqué que je ne peux pas déclarer un champ comme suit (ce qui m'aurait aidé):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
private List<? extends JComponent & Field> liste;
Voilà si quelqu'un à une idée je suis preneur.

Merci d'avance