0

我需要this在内部类中使用外部类的指针。

this如果不保存指针,我不知道该怎么做。有替代方案吗?

class outerclass {

  outerClass thisPointer;

  outerclass () {
      //
      // NOTE: I am saving this pointer here to reference
      // by the inner class later.   I am trying to find
      // a different alternative instead of saving this pointer.
      //
      thisPointer = this; 
  }

  class innerClass {

      void doSomething () {

           //
           // is there a way to reference the outter class
           // without having to save the thisPointer from
           // the outter class.
           // NOTE someObject is a class outside of the
           // outterclass control.
           //
           someObject.someMethod (thisPointer);
      }
  }     
}  
4

2 回答 2

4

使用语法NameOfOuterClass.this

void doSomething () {
    someObject.someMethod(outerClass.this);
}
于 2012-09-07T13:09:03.693 回答
1
outclass.this 

应该做的伎俩。

我假设您的外部类名称是外部类。按照 Java 的约定,你应该以大写字母开头类名

如果我没有正确理解您的示例,那么这里是一些示例代码。这里外部类 (Test1) 中的 a 值被分配给内部类 (Test2) 中的局部变量

public class Test1  {

    private int a =42;         

    private class Test2 {

         public void a() {
             int i = Test1.this.a;
         }
}
于 2012-09-07T13:09:53.053 回答