PWM63
Messages postés127Date d'inscriptionlundi 11 octobre 2004StatutMembreDernière intervention18 mai 2016
-
19 déc. 2013 à 17:58
PWM63
Messages postés127Date d'inscriptionlundi 11 octobre 2004StatutMembreDernière intervention18 mai 2016
-
20 déc. 2013 à 11:14
Bonjour,
J'ai 1 problème avec 1 switch.
Pour information, j'ai utilisé pour modèle ce switch qui se trouve également dans mon code et qui fonctionne parfaitement :
// ce switch est OK
switch (portIdentifier.getPortType())
{
case CommPortIdentifier.PORT_SERIAL:
this.jComboBox_Port.addItem(portIdentifier.getName());
}
Déclarations :
private Datas next_data = Datas._01_FrameStart;
public enum Datas {
_01_FrameStart, //2 octets : 0x10 0x02
_02_messageType, //Message type
// j'ai supprimé les lignes de 03 à 23 pour ne pas alourdir ce quote
_24_debugInfo, // 0 ~ 22 (now it is 22) Variable-length debug information
_25_FrameEnd, //0x10 0x03
_26_FrameSum; //Sum of Frame
public int getValue() {
return this.ordinal();
}
public static Datas forValue(int value) {
return values()[value];
}
}
J'aurais donc aimé faire 1 switch avec next_data, mais comme ca n'a pas fonctionné, j'ai utilisé if ainsi :
private void capture_data() {
// remplacement du switch par if puis else if pour chaque case...
if (next_data == Datas._01_FrameStart) {
_01_FrameStart();
else if (next_data == Datas._02_messageType) {
_02_messageType();
// j'ai supprimé les lignes de 03 à 23 pour ne pas alourdir ce quote
else if (next_data == Datas._24_debugInfo) {
_24_debugInfo();
else if (next_data == Datas._25_FrameEnd) {
_25_FrameEnd();
else if (next_data == Datas._26_FrameSum) {
_26_FrameSum();
}
}
Mais hélas, si j'essaie ainsi :
// 1 switch serait pourtant mieux
switch (next_data) {
// mais au 1er case, ca marche pas...
case Datas._01_FrameStart:
_01_FrameStart();
}
j'ai 1 erreur de syntaxe à la ligne :
case Datas._01_FrameStart:
J'ai essayé de tourner le case dans plusieurs sens, avec 1 new ou autre, sans succès...
Donc, est-ce qu'il existe 1 moyen de faire 1 switch dans mon cas ? (ou est-ce que je suis obligé de conserver mes if else if else if etc ?