2016-02-20 58 views
1
上找不到符號

我在下面的代碼中創建了方法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; 
    } 
+0

你可以發佈確切的錯誤,最好是一個堆棧跟蹤? – pczeus

回答

2

要調用arr.push()arr.pop()。然而,推動和流行是你班上的方法。只需撥打push(arr);pop,不要使用arr前綴。

+0

認爲這些方法已經引用「this」等等是否正確?是不正確的? –

+1

正確。因爲你處在你的類的上下文中,所以調用'push()'就等於調用'this.push()'。試圖調用'arr.push()'意味着你正在嘗試調用'arr'上的一個不存在的方法。 – pczeus

0

綜觀arr你的其他用途,它看起來像它已被定義爲對象的數組。 Java數組本身無法訪問推送和彈出方法。

如果你正在尋找訪問您所創建的pushpop方法,使用

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

不是:

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