Я пытаюсь реорганизовать некоторый код, поэтому, если возможно, у меня нет большого if if else.рефакторинг большого, если остальное satement в java
Вот код:
if (Character.getNumericValue(num) == 0) {
return bar0;
}
else if (Character.getNumericValue(num) == 1) {
return bar1;
}
else if (Character.getNumericValue(num) == 2) {
return bar2;
}
else if (Character.getNumericValue(num) == 3) {
return bar3;
}
else if (Character.getNumericValue(num) == 4) {
return bar4;
}
else if (Character.getNumericValue(num) == 5) {
return bar5;
}
else if (Character.getNumericValue(num) == 6) {
return bar6;
}
else if (Character.getNumericValue(num) == 7) {
return bar7;
}
else if (Character.getNumericValue(num) == 8) {
return bar8;
}
else if (Character.getNumericValue(num) == 9) {
return bar9;
}
else {
return bar10;
}
В основном он проверяет символ Num равно к Int 0-9, затем возвращает связанный с ним номера бар (который имеет тип строки). Есть ли способ сделать это лучше?
Я хотел бы, чтобы это было что-то вроде
if (Character.getNumericaValue(num) == x {
return barx;
}
else
return bar10;
, если это имеет смысл.
Если значения barN изменяются во время выполнения, ему приходится строить этот массив каждый раз, когда он будет выполнять оператор if. В этом случае оператор switch более эффективен. –
@IraBaxter OP должен реорганизовать каждый 'barN' на' bars [n] ', включая обновления. Поддержание набора из десяти индексированных переменных само по себе является запахом. –
В моем случае они не изменятся, так что это работает. Но да, если мне нужно было его изменить, я мог бы добавить еще одну строку в массив. – sire