Java 类名.class与类名.this 的区别?

“类名.this”的语法在Java语言中叫做“qualified this”。相关规定在这里:Chapter 15. Expressions - Qualified this
这个语法的主要用途是:在内部类的方法中,要指定某个嵌套层次的外围类的“this”引用时,使用“外围类名.this”语法。例如说:
class Foo {
class Bar {
Foo getFoo() {
return Foo.this;
}
}
}

在Foo.Bar类中的getFoo()方法中,如果直接写“this”的话所指的是这个Foo.Bar类的实例,而如果要指定外围的Foo类的this实例的话,这里就得写成Foo.this。
特别的,如果在上例的getFoo()方法中写Bar.this的话,作用就跟直接写this一样,指定的是当前的Foo.Bar类实例。

作者:RednaxelaFX
链接:https://www.zhihu.com/question/55565290/answer/145355951
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

上一篇:Intel Edison —— 控制GPIO接口,网页显示传感器数值


下一篇:java连接mysql数据库(jsp显示和控制台显示)