1,獲得類型類 我們知道在Java中一切都是對(duì)象,我們一般所使用的對(duì)象都直接或間接繼承自O(shè)bject類。Object類中包含一個(gè)方法名叫g(shù)etClass,利用這個(gè)方法就可以獲得一個(gè)實(shí)例的類型類。類型類指的是代表一個(gè)類型的類,因?yàn)橐磺薪允菍?duì)象,類型也不例外,在Java使用類型類來(lái)表示一個(gè)類型。所有的類型類都是Class類的實(shí)例。例如,有如下一段代碼: A a = new A(); if(a.getClass()==A.class) System.out.println("equal"); else System.out.println("unequal"); 結(jié)果就是打印出 “equal”。 可以看到,對(duì)象a是A的一個(gè)實(shí)例,A某一個(gè)類,在if語(yǔ)句中使用a.getClass()返回的結(jié)果正是A的類型類,在Java中表示一個(gè)特定類型的類型類可以用“類型.class”的方式獲得,因?yàn)閍.getClass()獲得是A的類型類,也就是A.class,因此上面的代碼執(zhí)行的結(jié)果就是打印出 “equal”。特別注意的是,類型類是一一對(duì)應(yīng)的,父類的類型類和子類的類型類是不同的,因此,假設(shè)A是B的子類,那么如下的代碼將得到 “unequal”的輸出: A a = new A(); if(a.getClass()==B.class) System.out.println("equal"); else System.out.println("unequal"); 因此,如果你知道一個(gè)實(shí)例,那么你可以通過(guò)實(shí)例的“getClass()”方法獲得該對(duì)象的類型類,如果你知道一個(gè)類型,那么你可以使用“.class”的方法獲得該類型的類型類。