Class類的實例表示java應用運行時的類(Class ans enum)或接口(interface and annotation)(每個java類運行時都在JVM裏表現為壹個Class對象,可通過類名.Class,類型.getClass(),Class.forName("類名")等方法獲取Class對象)。數組同樣也被映射為為Class 對象的壹個類,所有具有相同元素類型和維數的數組都***享該 Class 對象。基本類型boolean,byte,char,short,int,long,float,double和關鍵字void同樣表現為 Class對象。
2,Class類的特征
Class類沒有公有的構造方法,它由JVM自動調用(在new對象或者加載-ClassLoader時)。
下面的方法作用是打印出對象的Class name:
void printClassName(Object obj) {
System.out.println("The Class of " + obj + " is " + obj.getClass().getName());
}
同樣可以根據Class literal 獲得Class name:
System.out.println("The name of Class Foo is: "+Foo.Class.getName());//妳可以將Foo改為void嘗試下。
3,Class的用法示例
如我們定義壹個類:
public Class Test{
//Constructor
public Test(){this("");}
public Test(String name){}
//Field
public int id;
public String name;
//Method
public void testMethod(){
}
}
我們可以:
Class c = Class.forName("Test");
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());//輸出testMethod
}
Constructor c[] = cls.getDeclaredConstructors();
for (int i = 0; i < c.length; i++) {
Constructor ct = c[i];
System.out.println("name = " + ct.getName());//輸出兩個構造函數信息