获取java中2D数组的错误

获取java中2D数组的错误,java,Java,所以我真的被困在这里了,a2[行][列]有错误,但我不知道为什么。我是不是错过了一些近在眼前的东西 public class ArrayHW { public static void main(String[] args){ int [][] a2 = {{10,20,30,40}, {50, 60, 70 , 80}, {90, 100, 110, 120}}; display2DArray(); } public static

所以我真的被困在这里了,a2[行][列]有错误,但我不知道为什么。我是不是错过了一些近在眼前的东西

public class ArrayHW {
public static void main(String[] args){
    int [][] a2 = {{10,20,30,40},
            {50, 60, 70 , 80},
            {90, 100, 110, 120}};
    display2DArray();
}

public static void display2DArray() {
    for (int row = 0; row < 3; row++){
        for (int column = 0; column < 4; column++){
            System.out.println(a2[row][column]);
        }
    }
}
公共类数组{
公共静态void main(字符串[]args){
int[]a2={{10,20,30,40},
{50, 60, 70 , 80},
{90, 100, 110, 120}};
display2DArray();
}
公共静态void display2DArray(){
对于(int行=0;行<3;行++){
for(int列=0;列<4;列++){
System.out.println(a2[行][列]);
}
}
}

您遇到了一个作用域问题,a2 2D int数组已在主方法内声明,因此仅在同一主方法内可见。display2DArray方法无法查看此变量,也无法对其进行操作。一个体面的解决方案是为display2DArray方法指定一个
int[][]
参数,并将数组传递到方法中。请注意,参数名可以是任何有效的变量名,但需要在display2DArray方法中使用相同的变量名

public static void display2DArray(int[][] foo) {
    // avoid use of "magic" numbers and instead use the array's length field
    for (int row = 0; row < foo.length; row++){
        for (int column = 0; column < foo[row].length; column++){
            System.out.println(foo[row][column]);
        }
    }
}

另一个可行的解决方案是,通过在类中而不是在主方法中声明a2,使a2成为类的静态字段。

什么错误?请不要让我们猜测——发布完整的错误消息。啊,好吧!现在明白了。有没有一种方法可以做同样的事情,但不给它那个参数??就像我按我原来的方式离开一样,是吗“我能像静态的void一样改变成什么吗?”Pyromark:是的,我在回答的最后已经告诉过你如何在不使用参数的情况下做到这一点。
display2DArray(a2);