У меня есть тривиальная, но раздражающая проблема в Java. Предположим, что мы имеем следующий класс и метод:Java - модификация локальных переменных
class A{
void doSth(int[] array){
int index1, index2, index3;
int value1, value2, value3;
if(array[index1] > 10){
//Long code modifies value1, value2, value3
}
if(array[index3] > 100){
//Same long code modifies value1, value2, value3
}
if(array[index2] > 20){
//Same long code modifies value1, value2, value3
}
}
пренебрегая что это пытается достичь, я хотел бы, чтобы каким-то образом сделать это избыточность исчезнет. обычно, я передавал значения методу hlper, но я не могу, так как блок модифицирует локальные переменные. Любая идея, как это упростить?
@Wojtek Может читать больше, чем в первом предложении вопроса? Весь вопрос в том, как он может преодолеть проблемы именно с таким подходом. И действительно в java нет хороших ответов на это (передать класс/массив элементов вокруг, вернуть класс/объект и переназначить - оба уродливые) – Voo
Как вы используете значение value1-value2-value3 позже? – dbf
Почему бы и нет? if (array [index1]> 10 || array [index3]> 100 || array [index2]> 20)? Имеет ли смысл последовательность изменений? – Justin