Class 類(lèi)的實(shí)例表示正在運行的 Java 應用程序中的類(lèi)和接口,通過(guò)class對象,可以得到這個(gè)類(lèi)的詳細信息。枚舉是一種類(lèi),注釋是一種接口。每個(gè)數組屬于被映射為 Class 對象的一個(gè)類(lèi),所有具有相同元素類(lèi)型和維數的數組都共享該 Class 對象?;镜?Java 類(lèi)型(boolean、byte、char、short、int、long、float 和 double)和關(guān)鍵字 void 也表示為 Class 對象。
Class 沒(méi)有公共構造方法。Class 對象是在加載類(lèi)時(shí)由 Java 虛擬機以及通過(guò)調用類(lèi)加載器中的 defineClass 方法自動(dòng)構造的。每個(gè)類(lèi)都有一個(gè)class屬性,可以直接以 類(lèi).class 方式訪(fǎng)問(wèn),或者不應該說(shuō)是屬性,因為如果是類(lèi)的屬性的話(huà),它必定是public static,應該可以通過(guò)實(shí)例也可以訪(fǎng)問(wèn)到,但實(shí)例獲得class對象必須要調用getClass()方法才可以。
以下示例使用 Class 對象來(lái)顯示對象的類(lèi)名:
void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}
還可以使用一個(gè)類(lèi)字面值(JLS Section 15.8.2)來(lái)獲取指定類(lèi)型(或 void)的 Class 對象。例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。