Ein string, dem sein inhalt eindeutig laut System.out.println das wörtchen "BOTH" ist, lässt sich nicht auf diesen wert abfragen. Oder doch? Aber wie? So gehts nicht: (siehe zeile case 6
Wer will, erkennt in dieser routine übrigens eine optimierte methode, parameter zu lesen.
Code:
for (int i = 0; i<parameterinfo.length; i++) {
tmp = getParameter(parameterinfo[i][0]);
if (tmp != null) { try { val = Integer.parseInt(tmp);}
catch (NumberFormatException e) { val = 0; }
switch (i) {
case 0: filename = tmp;break;
case 1: value = val;break;
case 2: startverse = val;break;//startverse
case 3: stopverse = val;break;//stopverse
case 4: spokes = val;break;
case 5: rings = val;break;
case 6: System.out.println(tmp+"V"+typereq);//if (tmp == "GENERIC") typereq=1;
das +V+typreq habe ich dran gemacht um zu sehen, dass der string tatsächlich aufhört wo der letzte buchstabe sichtbar ist. das tut er. der string "BOTHV2" wird ausgegeben.
//if (tmp == "FULL") typereq=2;
if (tmp == "BOTH") {typereq=3; System.out.println(tmp+typereq);}
Hier ist tmp aber nicht = BOTH, zumindest wird die bedingung nicht erfüllt, typereq wird nicht 3 und geprintet wird diesmal garnix mehr.
// perr(i);
break;
case 7: if (tmp=="CLOCK") direction = -1;
else if (tmp=="COUNTERCLOCK") direction = 1;
else perr(i);
break;
case 8: if (tmp=="BOTTOM") orientation = 0;
else if (tmp=="RIGHT") orientation = 1;
else if (tmp=="TOP") orientation = 2;
else if (tmp=="LEFT") orientation = 3;
else perr(i);
break;
case 9: if (tmp=="ON") lineon = true;
else if (tmp=="OFF") lineon = false;
else perr(i);
break;
case 10: dialectic = val;break;
case 11: skip = val;break;
case 12: pupilverse = val*spokes;break;
}
}
}
Wer will, erkennt in dieser routine übrigens eine optimierte methode, parameter zu lesen.