Java 如何作为cass成员从数组中获取长度?

Java 如何作为cass成员从数组中获取长度?,java,arrays,class,Java,Arrays,Class,我有一个类,它有一些数组作为成员。在一些成员函数中,我想迭代上述数组。但是当我尝试获取数组的长度时,我看到错误非静态变量无法从静态上下文中引用 我有一行for(inti=0;I

我有一个类,它有一些数组作为成员。在一些成员函数中,我想迭代上述数组。但是当我尝试获取数组的长度时,我看到错误
非静态变量无法从静态上下文中引用

我有一行
for(inti=0;I
,数组是
private int[][]blue

例如:

public class M{
    private int[][] arr;

    public static void func(){
         for(int i = 0; i < this.arr.length; i++){
         //                 ^^^^ compiler does not like this     
         }
    }
}
公共类M{
私有int[]arr;
公共静态void func(){
for(int i=0;i
我知道我不是在看一个类的实例,所以值可以是任何东西,但是如果我必须事先知道所有的事情,我怎么能执行这些基本操作呢

我试图创建另一个成员来保存维度,但这导致了相同的问题

公共类M{
public class M{
    private int[][] arr;

    public void func(){
         for(int i = 0; i < this.arr.length; i++){
         //                 ^^^^ compiler does not like this     
         }
    }
}
私有int[]arr; 公共无效函数(){ for(int i=0;i

这将删除错误。这是从
func()
中删除静态数据。在某个时候,我学会了写,然后停止了质疑。感谢您在评论中的输入。

请添加一个。没有足够的信息来帮助您。我添加了一个小示例。public static void func()是一个静态函数。也就是说,它属于该类,而不是该类的任何实例。private int[][]arr是一个实例变量,类的每个实例都有一个新的潜在数组。由于静态方法不在实例上工作,因此它们无法访问实例变量。毕竟,如果没有实例,就没有arr。如果有多个实例,他们会使用哪一个?解决方案是将arr设置为静态变量,或将func()设置为非静态方法。