java中.this和.class的含义

假设我们有一个类名称Home。 Home.thisHome.class有什么区别 ? 他们指的是什么?

Home.this

Home.this是指Home类的当前实例。

这个expression式的forms术语似乎是合格的 ,正如Java语言规范的第15.8.4节所引用的。

在一个简单的课堂上说, Home.thisthis是相同的。 这个expression式只用于有内部类的情况,需要引用外部类。

例如:

 class Hello { class World { public void doSomething() { Hello.this.doAnotherThing(); // Here, "this" alone would refer to the instance of // the World class, so one needs to specify that the // instance of the Hello class is what is being // referred to. } } public void doAnotherThing() { } } 

Home.class

Home.class将返回Home类的表示作为Class对象。

这个expression式的正式术语是Java语言规范第15.8.2节中引用的类文字 。

在大多数情况下,这个expression式在使用reflection时使用,并且需要一种引用类本身的方法,而不是类的一个实例。

Home.class返回对应于类Homejava.lang.Class<Home>的实例。 这个对象允许你reflection类(找出它有哪些方法和variables,它的父类是什么等),并创build类的实例。

Home.this仅在嵌套的Home类中才有意义。 这里Home.this将返回嵌套类的对象嵌套在类Home的对象。