-4

我有一个简单的课程:

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

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

我想知道return 语句中的 是否表示托管的Store.this;实例?Storeproduct

4

3 回答 3

3

是的。请参阅JLS 15.8.4:限定此

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

令 C 为由 ClassName 表示的类。令 n 是一个整数,使得 C 是出现限定 this 表达式的类的第 n 个词法封闭类。

ClassName.this 形式的表达式的值是 this 的第 n 个词法封闭实例。

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

于 2013-06-23T16:07:48.490 回答
0

您将需要外部类的实例(在本例中为Store)来创建内部类的实例(在本例中为Product)。所以,在内部类中你可以用内部类返回的实例OuterClass.this来标记差异。this

于 2013-06-23T16:06:46.320 回答
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
   }
}
于 2013-06-23T16:09:35.723 回答