哪个对象是Thing.this在内部类中

时间:2013-06-23 16:04:44

标签: java

我有一个简单的课程:

Public class Store {
   Product product = new Product();

   public class Product{
      Store getStore(){
         //What does this return statement mean?
         return Store.this;
      }
   }
}

我想知道return语句中的Store.this;是否表示承载Store的{​​{1}}的实例?

3 个答案:

答案 0 :(得分:3)

是的。见JLS 15.8.4: Qualified this

  

任何词汇封闭的实例(第8.1.3节)都可以被引用   显式限定关键字this。

     

设C为ClassName表示的类。设n是这样的整数   C是这个类的第二个词汇封闭类   合格的这个表达式出现了。

     

ClassName.this形式的表达式的值是n'   在词汇上包含这个例子。

在这种情况下,词汇封闭实例是Store实例。

答案 1 :(得分:0)

您需要一个外部类的实例(在本例中为Store)来创建内部类的实例(在本例中为Product)。因此,在内部类中,您可以使用OuterClass.this来标记内部类返回的this实例之间的差异。

答案 2 :(得分:0)

Public class OuterClass{    
   public class InnerClass{
         //OuterClass.this is used to refer the current reference of outer class
         //this referes to the current instance of innner (self) class
   }
}