- 相關(guān)推薦
java獲取Class對(duì)象的方法
導(dǎo)語:java中的Class類對(duì)象是可以人工自然性的得到的,下面是相關(guān)介紹,歡迎參考!
獲取Class對(duì)象有三種方式:
1.通過Object類的getClass()方法。例如:
Class c1 = new String("").getClass();
2.通過Class類的靜態(tài)方法——forName()來實(shí)現(xiàn):
Class c2 = Class.forName("MyObject");
3.如果T是一個(gè)已定義的類型的話,在java中,它的.class文件名:T.class就代表了與其匹配的Class對(duì)象,例如:
Class c3 = Manager.class;
Class c4 = int.class;
Class c5 = Double[].class;
這里需要解釋一下3:請(qǐng)記住一句話,java中,一切皆對(duì)象。也就是說,基本類型int float 等也會(huì)在jvm的內(nèi)存池像其他類型一樣中生成一個(gè)Class對(duì)象。而數(shù)組等組合型數(shù)據(jù)類型也是會(huì)生成一個(gè)Class對(duì)象的,而且更令人驚訝的是,java中數(shù)組的本來面目其實(shí)就是某個(gè)類,驚訝中的驚訝是,含有相同元素的相同維數(shù)的數(shù)組還會(huì)共同享用同一個(gè)Class對(duì)象!其實(shí)根據(jù)我的臆想,數(shù)組的length性質(zhì)應(yīng)該就保存在這個(gè)Class對(duì)象里面。
Class類中存在以下幾個(gè)重要的方法:
1.getName()
一個(gè)Class對(duì)象描述了一個(gè)特定類的特定屬性,而這個(gè)方法就是返回String形式的該類的簡(jiǎn)要描述。由于歷史原因,對(duì)數(shù)組的Class對(duì)象調(diào)用該方法會(huì)產(chǎn)生奇怪的結(jié)果。
2.newInstance()
該方法可以根據(jù)某個(gè)Class對(duì)象產(chǎn)生其對(duì)應(yīng)類的實(shí)例。需要強(qiáng)調(diào)的是,它調(diào)用的是此類的默認(rèn)構(gòu)造方法。例如:
MyObject x = new MyObject();
MyObject y = x.getClass().newInstance();
3.getClassLoader()
返回該Class對(duì)象對(duì)應(yīng)的類的類加載器。
4.getComponentType()
該方法針對(duì)數(shù)組對(duì)象的Class對(duì)象,可以得到該數(shù)組的組成元素所對(duì)應(yīng)對(duì)象的Class對(duì)象。例如:
int[] ints = new int[]{1,2,3};
Class class1 = ints.getClass();
Class class2 = class1.getComponentType();
而這里得到的class2對(duì)象所對(duì)應(yīng)的就應(yīng)該是int這個(gè)基本類型的Class對(duì)象。
5.getSuperClass()
返回某子類所對(duì)應(yīng)的直接父類所對(duì)應(yīng)的Class對(duì)象。
6.isArray()
判定此Class對(duì)象所對(duì)應(yīng)的是否是一個(gè)數(shù)組對(duì)象。
【java獲取Class對(duì)象的方法】相關(guān)文章:
Java中Class對(duì)象詳解03-12
Java獲取UTC時(shí)間的方法08-09
java - public class與class的區(qū)別詳解04-28
Java編程中獲取路徑的方法12-16
java面向?qū)ο缶幊痰姆椒ㄙY料06-05
Java Class文件是什么03-25
java的Class類有哪些06-04