簡體   English   中英

私有類從其外部類調用方法

[英]private class calling a method from its outer class

好的,所以我有一個用於“高級數據結構”的類(在本例中為一棵樹),所以我將Iterator隱含為其中的私有類。 因此,迭代器需要實現remove函數以刪除最后一個已恢復元素。

現在,我的ADT已經實現了remove函數,在這種情況下,通過為迭代器實現不同的remove函數,幾乎沒有收益(想想,我認為沒有)。

所以我該如何從ADT中調用刪除

我的結構草圖:

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)是同一回事。

我叫什么? (並且不能更改ADT的remove函數的名稱,因為AD T必須滿足Interace的要求,我可以自由更改)

我想我可以將它們都稱為removeHelper函數。

ADT.this.remove(object)

(盡管在這種情況下僅調用remove(object)將起作用,因為它的簽名與迭代器中的remove()方法的簽名不同。)

要獲取內部類“附加”的外部類的引用,請在您的情況下使用ClassName.this:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM