Java - 修改局部变量

Bob*_*r02 3 java local-variables

我在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
        }    
    }
Run Code Online (Sandbox Code Playgroud)

无视这是想要实现的目标,我想以某种方式使这种冗余消失.通常,我会将值传递给hlper方法,但我不能,因为块正在修改局部变量.知道如何简化这个吗?

Jon*_*eet 9

这听起来像你value1,value2并且value3可能有一些组合的含义.因此,将它们封装到一个单独的类中,此时您可以调用一个方法来修改现有实例或返回该类的新实例.无论哪种方式,使用单个局部变量你都可以.