4 回答

TA貢獻1786條經(jīng)驗 獲得超13個贊
ConfMgr.class是獲取ConfMgr的class對象,類型類指的是代表一個類型的類,因為一切皆是對象,幾種獲取class對象的方法:
1,所有的引用數(shù)據(jù)類型(類-類型)的類名、基本數(shù)據(jù)類型都可以通過.class方式獲取其 Class對象。
對于基本數(shù)據(jù)類型的封裝類還可以通過.TYPE 的方式獲取其 Class 對象,但要注意。TYPE 實際上獲取的封裝類對應(yīng)的基本類型的 Class 對象的引用。
那么你可以判斷出int.class==Integer.TYPE 返回 true,int.class==Integer.class 返回 false!通過這種方式不會初始化靜態(tài)域,使用.class、.TYPE 的方式獲取 Class對象叫做類的字面常量;
2,Class 的 forName(String name)傳入一個類的完整類路徑也可以獲得 Class 對象。
由于使用的是字符串,必須強制轉(zhuǎn)換才可以獲取泛型的Class<T>的 Class對象,并且必須獲取這個方法可能拋出的ClassNotFoundException異常。這種方法可以初始化靜態(tài)域。
3,還可通過類的對象實例下的getClass()方法來獲取Class對象,即 實例名getClass()
擴展資料
在一個面向?qū)ο蟮南到y(tǒng)中,類(class)是數(shù)據(jù)和操作數(shù)據(jù)的方法的集合。數(shù)據(jù)和方法一起描述對象(object)的狀態(tài)和行為。
每一對象是其狀態(tài)和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。
當編輯并運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟件(例如記事本、寫字板、UltraEdit等)或集成開發(fā)環(huán)境(Eclipse、MyEclipse等)在Java源文件中定義不同的類。
通過調(diào)用類(這些類實現(xiàn)了Java API)中的方法來訪問資源系統(tǒng),把源文件編譯生成一種二進制中間碼,存儲在class文件中。
通過運行與操作系統(tǒng)平臺環(huán)境相對應(yīng)的Java虛擬機來運行class文件,執(zhí)行編譯產(chǎn)生的字節(jié)碼,調(diào)用class文件中實現(xiàn)的方法來滿足程序的Java API調(diào)用 。

TA貢獻1859條經(jīng)驗 獲得超6個贊
.class文件是java文件編譯之后的文件。
A a = new A();
if(a.getClass()==A.class) {
System.out.println("equal");
} else {
System.out.println("unequal");
}
可以看到,對象a是A的一個實例,A是某一個類,在if語句中使用a.getClass()返回的結(jié)果正是類A的類型類,在Java中表示一個特定類型的類型類可以用“類型.class”的方式獲得,因為a.getClass()獲得是A的類型類,也就是A.class,因此上面的代碼執(zhí)行的結(jié)果就是打印出“equal”。
拓展資料:
Java反射
所謂反射,可以理解為在運行時期獲取對象類型信息的操作。傳統(tǒng)的編程方法要求程序員在編譯階段決定使用的類型,但是在反射的幫助下,編程人員可以動態(tài)獲取這些信息,從而編寫更加具有可移植性的代碼。嚴格地說,反射并非編程語言的特性,因為在任何一種語言都可以實現(xiàn)反射機制,但是如果編程語言本身支持反射,那么反射的實現(xiàn)就會方便很多。

TA貢獻1865條經(jīng)驗 獲得超7個贊
onfMgr.class是獲取ConfMgr的class對象。
下面給你說幾種獲取class對象的方法:
Class對象的獲取
1. 所有的引用數(shù)據(jù)類型(類-類型)的類名、基本數(shù)據(jù)類型都可以通過.class方式獲取其 Class對象(對于基本數(shù)據(jù)類型的封裝類還可以通過.TYPE 的方式獲取其 Class 對象,但要注意。TYPE 實際上獲取的封裝類對應(yīng)的基本類型的 Class 對象的引用,那么你可以判斷出int.class==Integer.TYPE 返回 true,int.class==Integer.class 返回 false!),通過這種方式不會初始化靜態(tài)域,使用.class、.TYPE 的方式獲取 Class對象叫做類的字面常量;
2. Class 的 forName(String name)傳入一個類的完整類路徑也可以獲得 Class 對象,但由于使用的是字符串,必須強制轉(zhuǎn)換才可以獲取泛型的Class<T>的 Class對象,并且你必須獲取這個方法可能拋出的ClassNotFoundException異常。這種方法可以初始化靜態(tài)域。
3. 還可通過類的對象實例下的getClass()方法來獲取Class對象,即 實例名.getClass()
添加回答
舉報