Salut,

J'ai un problème je ne sais pas comment ressoudre en Java d'une façon efficace.

Disons que je reçoit une String comme la suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
PARAMETER1=value1;
PARAMETER2=value2;
PARAMETER3=value3;
PARAMETER4=value4;
PARAMETER5=value5;
PARAMETER6=value6;
...
L'ordre des parametres n'est pas fixe.
Et je veux parser et decoder cette String pour finalement avoir un object d'une class comme la suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
class Parameters{
 
 public type1 param1,
                  param2;
 public type2 param3,
                  param4;
 public type3 param5;
 public type4 param6;
...
}
où les valeurs trouvés dans le String soient affectes aux parametres correspondant.

Parser la String ne pose pas aucun problème.

Est pour savoir quelle variable de ma class Parameters affecter, la seul solution que je trouve c'est de introduire chaque PARAMETERS string dans un hashtable, qui me donne un numero different pour chaque PARAMETER et apres faire un switch. C-a-d:
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
 
setHastable(){
 Hashtable tbl= new Hastable();
 tbl.put("PARAMETER1", 1);
 tbl.put("PARAMETER2", 2);
 tbl.put("PARAMETER3", 3);
...
}
 
decodeParameterString(String paramStr, Object value, Parameter param){
 int n = tbl.get(paramStr)
 switch(n){
   case 1:
     param.parameter1 = (type1) value;
     break;
  case 2:
     param.parameter2 = (type1) value;
     break;
  ...
 }
}
En C, un solution plus efficace serait de donner dans la hastable le offset de chaque parametre dans un structure et son type.

Est-ce que en Java il existe une solution plus efficace que celle que j'ai montré ici??

Merci!!

Manu