在类似的阵列上找不到符号

时间:2016-02-19 12:11:43

标签: java arrays compare cannot-find-symbol

我必须从给定的接口构建一堆可比较的对象。 在课堂上,这是我的构造函数:

public S()
{
   Comparable[] arr = new Comparable[INITSIZE];
   size = 0;
}

现在,在数组出现的每个方法中,例如:

public void push(Comparable x)
{
   arr[size++] = x;
}

我在编译时找不到与arr相关的符号错误。为什么呢?

1 个答案:

答案 0 :(得分:2)

  

我在编译时找不到与arr相关的符号错误。

在类中声明arr但在任何方法或构造函数之外。

public class S{

    Comparable[] arr;  
}

并在构造函数中初始化它。

public S()
{
    arr = new Comparable[INITSIZE];
}

否则arr对其他方法不可见,并且在编译时你将无法找到与arr相关的符号错误,因为它是构造函数中的局部变量。

public class S{

        Comparable[] arr = null; 

        public S()
        {
             arr = new Comparable[INITSIZE];
        }

    }
相关问题