Bonjour à tous,
J'ai un problème assez sympa à vous exposer, qu'il faut que je resolve pour l'appli sur laquelle je travaille en ce moment.
Mon appli utilise de plugins et ces plugins ont besoins de pouvoir déclarer un nombre inconnu de paramètres de types numérique bornés.
J'ai une classe paramètre, et j'aurais voullu que celle-ci soit générique et puisse accepter tout type de "numérique" "comparable".
J'ai donc écris ça (j'ai vonlontairement zappé les accesseurs et ... pour que ca soit lisible) :
Ensuite j'aurais voulu contruire une classe contenant une liste de cette bebête (PluginsParameter), et disposant de méthode de lecture, d'ajout, de suppression, ... pour rendre la manipulation des PluginsParameter plus aisée depuis les plugins.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public class PluginsParameter<T extends Number & Comparable<T>> { public String name; public String description; public T value; public T minimum; public T maximum; }
Mais là je galère.
Pour l'instant j'ai ça :
Premièrement : je n'arrive pas à typer correctement ma liste.
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
25 public class PluginsParametersList { private Map<String, PluginsParameter> list = new HashMap<String, PluginsParameter>( ); public <T extends Number & Comparable<T>> void put(String name, T value, T minimum, T maximum){ if(list.containsKey(name)){ list.remove(name); } list.put(name, new PluginsParameter2<T>(name, value, minimum, maximum)); } public <T extends Number & Comparable<T>> T get(String name){ return list.get(name).getValue(); } public void remove(String name){ if(list.containsKey(name)){ list.remove(name); } } public boolean contains(String name){ return list.containsKey(name); } }
Deuxièmement : je n'arrive pas à écrire une méthode "get" qui renvoi le type effectif, j'arrive avec difficulté à renvoyer un Number, ce qui ne m'aide pas beaucoup.
Un peu (ou beaucoup) d'aide serait la bienvenue.
Merci d'avance.
Partager