2

好的,所以我有一个“高级数据结构”类(在这种情况下是一个树)所以我将一个迭代器作为一个私有类来实现。所以迭代器需要实现一个remove函数来移除最后一个retuired元素。

现在我的 ADT 已经实现了一个删除函数,在这种情况下,通过为迭代器实现一个不同的删除函数几乎没有什么好处(考虑一下,我什么都没有)。

那么我该如何从我的 ADT 中调用 remove

我的结构草图:

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 的删除功能的名称不是一个选项,因为 AD T 必须满足一个交互,我可以随意更改)

我想我可以让他们两个都调用 removeHelper 函数,我猜......

4

2 回答 2

4
ADT.this.remove(object)

(尽管在这种情况下只调用 remove(object) 将起作用,因为它与迭代器中的 remove() 方法具有不同的签名。)

于 2010-05-08T04:07:18.583 回答
3

要获取内部类“附加”的外部类的引用,请使用 ClassName.this,在您的情况下:

   private class ADT_Iterator impliments  java.util.Itorator{
      ...
      public void remove(){
          ADT.this.remove(obj)
      }
于 2010-05-08T04:08:38.067 回答