类名.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类实例。
类名.class
“类型名.class”的语法在Java语言中叫做“Class Literal”,类字面量。
相关规定在这里:https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.8.2
类字面量的类型是 java.lang.Class<类型名>。例如说 Foo.class 的类型就是 Class,是一个引用,指向Foo类唯一对应的那个 Class 对象。当我们需要通过Class对象来做一些反射操作的时候,常常会用到类字面量的语法。
作者:RednaxelaFX
链接:https://www.zhihu.com/question/55565290/answer/145355951
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。