糯米文學吧

位置:首頁 > 計算機 > java語言

java獲取Class對象的方法

導語:java中的Class類對象是可以人工自然性的得到的,下面是相關介紹,歡迎參考!

java獲取Class對象的方法

  獲取Class對象有三種方式:

1.通過Object類的getClass()方法。例如:

Class c1 = new String("")lass();

2.通過Class類的靜態方法——forName()來實現:

Class c2 = ame("MyObject");

3.如果T是一個已定義的類型的話,在java中,它的s文件名:s就代表了與其匹配的Class對象,例如:

Class c3 = s;

Class c4 = s;

Class c5 = Double[]s;

這裏需要解釋一下3:請記住一句話,java中,一切皆對象。也就是説,基本類型int float 等也會在jvm的內存池像其他類型一樣中生成一個Class對象。而數組等組合型數據類型也是會生成一個Class對象的,而且更令人驚訝的是,java中數組的本來面目其實就是某個類,驚訝中的驚訝是,含有相同元素的相同維數的數組還會共同享用同一個Class對象!其實根據我的臆想,數組的length性質應該就保存在這個Class對象裏面。

  Class類中存在以下幾個重要的方法:

ame()

一個Class對象描述了一個特定類的特定屬性,而這個方法就是返回String形式的該類的簡要描述。由於歷史原因,對數組的Class對象調用該方法會產生奇怪的結果。

nstance()

該方法可以根據某個Class對象產生其對應類的.實例。需要強調的是,它調用的是此類的默認構造方法。例如:

MyObject x = new MyObject();

MyObject y = lass()nstance();

lassLoader()

返回該Class對象對應的類的類加載器。

omponentType()

該方法針對數組對象的Class對象,可以得到該數組的組成元素所對應對象的Class對象。例如:

int[] ints = new int[]{1,2,3};

Class class1 = lass();

Class class2 = omponentType();

而這裏得到的class2對象所對應的就應該是int這個基本類型的Class對象。

uperClass()

返回某子類所對應的直接父類所對應的Class對象。

ray()

判定此Class對象所對應的是否是一個數組對象。

標籤:JAVA class 獲取