私有类从其外部类调用方法

时间:2010-05-08 04:00:00

标签: java methods iterator private-class

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

现在我的ADT已经发现了删除功能, 在这种情况下,通过为迭代器实现不同的删除函数来获得很少的东西(想一想,我认为没什么)。

所以如何从我的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的删除功能的名称不是一个选项,因为AD T必须满足我自己要注意改变的Interace)

我可以让他们两个叫做removeHelper功能,我猜......

2 个答案:

答案 0 :(得分:4)

ADT.this.remove(object)

(虽然在这种情况下调用remove(object)会有效,因为它的签名与迭代器中的remove()方法不同。)

答案 1 :(得分:3)

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

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