3

私が見ているコードの一部に気づきました。作成者は次のように使用しました。

class MainClass
{
  protected int someVar = 1;

  private SomeClass someClass = new SomeClass(this, new SomeActionListener() {
    protected void onAction() {
      MainClass.this.someVar ++;
    }
  });

  public MainClass()
  {
  }
}

MainClass.this彼がスコープをに戻すために「this」の適切なコンテキストを取得した方法に注意してくださいMainClass。私はこれがこれまでに行われたのを見たことがありません-誰かが説明できますか?

4

1 に答える 1

5

匿名インスタンスは、それが作成されたインスタンスのスコープにバインドされます。したがって、内部のすべてにアクセスすることもできます。匿名インスタンスと匿名インスタンスが作成されたインスタンスをthis参照します。MainClass.thisたとえば、someClassメンバーがとして宣言されている場合static、を使用することはできませんMainClass.this

于 2011-05-03T18:29:04.747 に答える