首先用 Class.forName(完整類名)獲得一個(gè)Class對(duì)象clazz,然后調(diào)用Class對(duì)象clazz的newInstance()方法得到一個(gè)對(duì)象。
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出泊頭免費(fèi)做網(wǎng)站回饋大家。
這個(gè)屬于java反射機(jī)制范圍:在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法;這 種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java語言的反射機(jī)制。
Java.lang.reflect.Field getName()返回此 Field 對(duì)象表示的字段的名稱。getGenericType()返回一個(gè) Type 對(duì)象,它表示此 Field 對(duì)象所表示字段的聲明類型。
下面具體介紹一下java的反射機(jī)制。這里你將顛覆原來對(duì)java的理解。 Java的反射機(jī)制的實(shí)現(xiàn)要借助于4個(gè)類:class,Constructor,F(xiàn)ield,Method;其中class代表的時(shí)類對(duì) 象,Constructor-類的構(gòu)造器對(duì)象,F(xiàn)ield-類的屬性對(duì)象,Method-類的方法對(duì)象。
Java中反射常用知識(shí): 要想使用反射,首先需要獲得待處理類或?qū)ο笏鶎?duì)應(yīng)的Class對(duì)象。
什么時(shí)候非用 反射不可。 這個(gè)簡單 比如 類名 是從配置文件中讀取的。 這樣必須要用反射的機(jī)制動(dòng)態(tài)的加載類。比如spring 中的配置文件中的實(shí)體類 。 這樣就必須用反射機(jī)制動(dòng)態(tài)加載了。
Java的反射機(jī)制的實(shí)現(xiàn)要借助于4個(gè)類:class,Constructor,F(xiàn)ield,Method;其中class代表的時(shí)類對(duì) 象,Constructor-類的構(gòu)造器對(duì)象,F(xiàn)ield-類的屬性對(duì)象,Method-類的方法對(duì)象。通過這四個(gè)對(duì)象我們可以粗略的看到一個(gè)類的各個(gè)組 成部分。
Java在編譯之后會(huì)生成一個(gè)class文件,反射通過字節(jié)碼文件找到其類中的方法和屬性等。通過反射,java可以動(dòng)態(tài)的加載未知的外部配置對(duì)象,臨時(shí)生成字節(jié)碼進(jìn)行加載使用,使代碼更靈活,極大地提高應(yīng)用的擴(kuò)展性。
反射就是把Java的各種成分映射成相應(yīng)的Java類。Class類的構(gòu)造方法是private,由JVM創(chuàng)建。反射是java語言的一個(gè)特性,它允程序在運(yùn)行時(shí)(注意不是編譯的時(shí)候)來進(jìn)行自我檢查并且對(duì)內(nèi)部的成員進(jìn)行操作。
Java反射機(jī)制是一個(gè)非常強(qiáng)大的功能,在很多大型項(xiàng)目比如Spring,Mybatis都可以看見反射的身影。
最后,使用invoke方法調(diào)用該方法,并傳入需要調(diào)用的對(duì)象作為參數(shù)。這里我們將obj作為參數(shù)傳遞給invoke方法,表示要對(duì)obj對(duì)象調(diào)用voidFunction方法。
Java調(diào)用private方法利用的是Java中的類反射機(jī)制 。
利用反射還可以訪問內(nèi)部類、匿名內(nèi)部類的私有屬性。用java自帶的java -private 類名 反編譯命令可以查看類的完整定義。(參考think in java)下面舉例子說明。
1。獲得類對(duì)象,也就是Class;選擇六種方法中的一種就可以了。2。通過重反射的方法獲得字段。也就是getDeclaredField()得到Field。3。獲得私有變量的可訪問權(quán)限。setAccessible(true)。4。這樣就可以隨便反射了。
Java中要用到反射,首先就必須要獲取到對(duì)應(yīng)的class對(duì)象,在Java中有三種方法獲取類對(duì)應(yīng)的class對(duì)象。