“类名.this” 与 “类名.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类实例。

类名.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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值