-2

在java中,如何将数组传递给类。每当我这样做时,我都会收到“无法在静态上下文中引用非静态变量”。该阵列有 10 个位置。我将数组声明为。

编辑:这是一个更清晰的例子吗?我还应该注意,我的老师完全忽略了什么是静态的,以及它是如何使用的,声称程序员理解它并不重要。

编辑2:我设法让它工作, sorter sort = new sorter(); 把它变成 static sorter sort = new sorter(); 了这对我的程序到底做了什么,这被认为是一个糟糕的修复吗?

主要的

public class example {

    public static void main(String[] args) {

    int[] test = new int[10];
     sorter sort = new sorter();

     sort.GetArray(test);


    }
}

班级

public class sorter {

    int[] InputAR = new int[10];

    public sorter
    {

    }

        public void GetArray(int[] a)
    {


    }
}
4

3 回答 3

0

您没有输入足够的代码,我的猜测是:

  • 您声明了一个非静态字段(例如 int[] test = new int[10] 而不是 static int ...)
  • sort.getArray 在 main 或另一个静态方法中。

这是不可能的,因为非静态字段需要一个具体的对象才能存在。

于 2013-01-30T13:03:25.690 回答
0

这是因为您正在调用sort.GetArray(test)某种static方法。您需要使数组变量static才能访问它。

只需阅读本文,您就会了解代码的问题。

于 2013-01-30T13:04:23.350 回答
0

不能在静态上下文中引用非静态变量

您的此错误与传递数组或其他内容无关。在您的代码中的某处,或者可能在public void GetArray(int[] a)您内部引用一个static成员,但具有非静态上下文。

使那个变量non-static,或方法static,反之亦然。

请参阅此链接了解更多信息。

于 2013-01-30T13:04:40.533 回答