今天就跟大家聊聊有關(guān)怎么在java中利用反射創(chuàng)建代碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
1.實(shí)例說明
new 一個對象是實(shí)例,可以把這個new出來的對象叫做實(shí)例,說白了就是這個new出來的“東西”,叫它對象也可以,叫它實(shí)例也可以,對象和實(shí)例在這個角度上來講是等價(jià)的。
2.創(chuàng)建空參的實(shí)例
使用Class對象的newInstance()方法來創(chuàng)建Class對象對應(yīng)類的實(shí)例。
//原始:new的時(shí)候,先根據(jù)被new的類的名稱找尋該類的字節(jié)碼文件,并加載進(jìn)內(nèi)存,
//并創(chuàng)建該字節(jié)碼文件對象,并接著創(chuàng)建該字節(jié)文件對應(yīng)的Person對象。
Person p = new Person(); //反射:找尋該類的名稱,并加載進(jìn)內(nèi)存,并產(chǎn)生Class對象 //在產(chǎn)生類的對象 Strint className = "com.example.hgx.Person"; Class clazz = Class.forName(className); Object obj = clazz.newInstance();
3.創(chuàng)建帶參數(shù)的實(shí)例
這時(shí)要通過Class對象獲取指定的Constructor對象,再調(diào)用Constructor對象的newInstance()方法來創(chuàng)建實(shí)例。
class Person { public String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } //獲取Person類帶一個(String,int)參數(shù)的構(gòu)造器 Strint className = "com.example.hgx.Person"; Class clazz = Class.forName(className); Constructor constructor = clazz.getConstructor(String.class,int.class);
內(nèi)容擴(kuò)展:
反射定義
反射機(jī)制指的是程序在運(yùn)行時(shí)能夠獲取自身的信息。在java中,只要給定類的名字,那么就可以通過反射機(jī)制來獲得類的所有屬性和方法。
反射的作用
在運(yùn)行時(shí)判斷任意一個對象所屬的類。
在運(yùn)行時(shí)判斷任意一個類所具有的成員變量和方法。
在運(yùn)行時(shí)任意調(diào)用一個對象的方法
在運(yùn)行時(shí)構(gòu)造任意一個類的對象
看完上述內(nèi)容,你們對怎么在java中利用反射創(chuàng)建代碼有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
新聞名稱:怎么在java中利用反射創(chuàng)建代碼-創(chuàng)新互聯(lián)
文章鏈接:http://www.rwnh.cn/article2/csjioc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、自適應(yīng)網(wǎng)站、定制網(wǎng)站、網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容