您好,登錄后才能下訂單哦!
今天小編給大家分享一下java反射方式如何創(chuàng)建的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
1.實(shí)例說(shuō)明
new 一個(gè)對(duì)象是實(shí)例,可以把這個(gè)new出來(lái)的對(duì)象叫做實(shí)例,說(shuō)白了就是這個(gè)new出來(lái)的“東西”,叫它對(duì)象也可以,叫它實(shí)例也可以,對(duì)象和實(shí)例在這個(gè)角度上來(lái)講是等價(jià)的。
2.創(chuàng)建空參的實(shí)例。 使用Class對(duì)象的newInstance()方法來(lái)創(chuàng)建Class對(duì)象對(duì)應(yīng)類(lèi)的實(shí)例。
//原始:new的時(shí)候,先根據(jù)被new的類(lèi)的名稱找尋該類(lèi)的字節(jié)碼文件,并加載進(jìn)內(nèi)存,
//并創(chuàng)建該字節(jié)碼文件對(duì)象,并接著創(chuàng)建該字節(jié)文件對(duì)應(yīng)的Person對(duì)象。
Person p = new Person(); //反射:找尋該類(lèi)的名稱,并加載進(jìn)內(nèi)存,并產(chǎn)生Class對(duì)象 //在產(chǎn)生類(lèi)的對(duì)象 Strint className = "com.example.hgx.Person"; Class clazz = Class.forName(className); Object obj = clazz.newInstance();
3.創(chuàng)建帶參數(shù)的實(shí)例。 這時(shí)要通過(guò)Class對(duì)象獲取指定的Constructor對(duì)象,再調(diào)用Constructor對(duì)象的newInstance()方法來(lái)創(chuàng)建實(shí)例。
class Person { public String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } } //獲取Person類(lèi)帶一個(gè)(String,int)參數(shù)的構(gòu)造器 Strint className = "com.example.hgx.Person"; Class clazz = Class.forName(className); Constructor constructor = clazz.getConstructor(String.class,int.class);
以上就是“java反射方式如何創(chuàng)建”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。