我有一个简单的课程:
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}}的实例?
答案 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
}
}