Object.getClass()方法大家都很熟悉,在jdk1.8 API中的解释如下:
划重点:getClass()返回的是此Object的运行时类,即类对象的运行时类的Class对象。
内容写得文绉绉的,直接上代码看下:
package com.study;
public class test {
public static void main(String[] args) {
Person person = new Person(10, 1234);
System.out.println(person.getClass());
}
}
class Person{
int age;
int name;
public Person(int age, int name) {
this.age = age;
this.name = name;
}
}
可以看到上述红框输出,这是就知道“类对象的运行时类的Class对象”是什么意思了。
需要知道的是,此处的Person类是内部类,但是java在编译的时候,会把所有的类都生成一个class文件,包括匿名类(匿名类在编译时会自动给个名称),这就是为什么结果显示结构是com.study.Person