由幫助文檔可知纵揍,getClass()的作用是返回此Object的運(yùn)行時(shí)類顿乒。
那么,什么是運(yùn)行時(shí)類泽谨?
只需將其理解成具有該對象類型的所有元數(shù)據(jù)的對象璧榄。你可以在該對象中,找到類隔盛、字段犹菱、類型層次結(jié)構(gòu)等中聲明的方法。該信息通常由使用反射的代碼使用吮炕,使用他們來檢查對象/類型 or 運(yùn)行方法,而無需在對其本身進(jìn)行編碼時(shí)定義和編譯類访得。
因?yàn)轭惗x可能會隨著時(shí)間而改變龙亲,或者對象可能被聲明為父/超類,而該對象實(shí)際上時(shí)所聲明的子類型的實(shí)例悍抑。加載某個(gè)類時(shí)鳄炉,就是其實(shí)例期間加載的信息,將由getClass()返回搜骡。
簡而言之拂盯,信息將在編譯后加載,并且所有的元數(shù)據(jù)將構(gòu)成運(yùn)行時(shí)類记靡。即:一個(gè)對象谈竿,其中包含程序運(yùn)行時(shí)加載的有關(guān)類的信息
實(shí)例演示:
public class Person {
}
public class Studentextends Person{
}
public class ObjectMethod {
public static void main(String[] args) {
Person person =new Person();
Class aClass = person.getClass();
System.out.println(aClass);
Student student =new Student();
Class aClass1 = student.getClass();
System.out.println("aClass1 = " + aClass1);
Person person1 =new Student();
Class aClass2 = person1.getClass();
System.out.println("aClass2 = " + aClass2);
}
}
可以看到如下的結(jié)果
只要有了字節(jié)碼文件,我們可以使用getClass()方法摸吠,里面有什么空凸,我們就可以拿什么