在方法上找不到符号

时间:2016-02-20 00:32:21

标签: java methods cannot-find-symbol

我在下面的代码中创建方法toArray,在调用toArray内的pop()和push()方法时找不到符号错误。为什么呢?

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

   public Object pop() throws EmptyStackException
   {
      return arr[size--];
   }

   public Comparable[] toArray() 
   {
      Comparable[] newarr = new Comparable[size];
      for(int i = 0; i < size; i++)
      {
         newarr[i] = arr.pop();
      }
      for(int i = size; i > 0; i--)
      {
         arr.push(newarr[i-1]);
      }
      return newarr;
   }

2 个答案:

答案 0 :(得分:2)

您正在呼叫arr.push()arr.pop()。然而,push和pop是你班级中的方法。只需拨打push(arr);pop,不要使用arr前缀。

答案 1 :(得分:0)

查看arr的其他用法,看起来它已被定义为对象数组。 Java数组本身无法访问push和pop方法。

如果您希望访问自己创建的pushpop方法,请使用

pop();
push(newarr[i-1]);

而不是:

arr.pop();
arr.push(newarr[i-1]);