2010-05-08 73 views
2

好方法,所以我有一個「高級數據結構」(在這種情況下,有點樹)一類 SO我implimented一個迭代器作爲一個私有的類與它。 所以迭代器需要實現一個刪除功能,以刪除最後一個retuirned元素。私有類調用其外部類

現在我的ADT已經實現了刪除功能, ,在這種情況下,只有很少的(思考它,我認爲沒有什麼)通過實現迭代器的不同刪除功能而獲得。

讓我怎麼去從我的ADT調用刪除

草圖我的PPC結構:(?將它)

public class ADT { 
... 
    private class ADT_Iterator impliments java.util.Itorator{ 
     ... 
     public void remove(){ 
      //where I want to call the ADT's remove function from 
     } 
... 

    public void remove(Object paramFoo) 
    { 
    ... 
    } 

    ...  

} 

所以才調用remove(FooInstance)將無法工作 和this.remove(FooInstance)是一樣的東西。

我打電話給什麼? (和changign的ADT的刪除函數的名稱是不是一種選擇,因爲該廣告筆必須滿足的Interace至極,我注意到隨意更改)

我可以讓他們倆叫removeHelper functon,我猜...

回答

4
ADT.this.remove(object) 

(雖然只是調用remove(對象)會在這種情況下工作,因爲它具有比迭代器中remove()方法不同的簽名。)

3

爲了得到參考內部類是「附加」的外部類使用ClassName.this,在您的情況下:

private class ADT_Iterator impliments java.util.Itorator{ 
     ... 
     public void remove(){ 
      ADT.this.remove(obj) 
     }