java中.this和.class的含义
假设我们有一个类名称Home。 Home.this和Home.class有什么区别 ? 他们指的是什么?
Home.this
Home.this
是指Home
类的当前实例。
这个expression式的forms术语似乎是合格的 ,正如Java语言规范的第15.8.4节所引用的。
在一个简单的课堂上说, Home.this
和this
是相同的。 这个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
返回对应于类Home
的java.lang.Class<Home>
的实例。 这个对象允许你reflection类(找出它有哪些方法和variables,它的父类是什么等),并创build类的实例。
Home.this
仅在嵌套的Home类中才有意义。 这里Home.this
将返回嵌套类的对象嵌套在类Home
的对象。