這篇文章主要介紹了Java基于反射機(jī)制獲取不同類的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
什么是反射機(jī)制
Java的反射(reflection)機(jī)制是指在程序的運(yùn)行狀態(tài)中,可以構(gòu)造任意一個(gè)類的對象,可以了解任意一個(gè)對象所屬的類,可以了解任意一個(gè)類的成員變量和方法,可以調(diào)用任意一個(gè)對象的屬性和方法。這種動(dòng)態(tài)獲取程序信息以及動(dòng)態(tài)調(diào)用對象的功能稱為Java語言的反射機(jī)制。反射被視為動(dòng)態(tài)語言的關(guān)鍵(在運(yùn)行階段可以改變其結(jié)構(gòu))
特點(diǎn):
1、極大的提高了程序的靈活性和擴(kuò)展性,降低模塊的耦合性,提高自身的適應(yīng)能力
2、通過反射機(jī)制可以讓程序創(chuàng)建和控制任何類的對象,無需提前硬編碼目標(biāo)類
3、能夠在運(yùn)行時(shí)構(gòu)造一個(gè)類的對象、判斷一個(gè)類所具有的成員變量和方法、調(diào)用一個(gè)對象的方法(包括 private),可能會(huì)有安全隱患
4、是構(gòu)建框架技術(shù)的基礎(chǔ)所在,使用反射可以避免將代碼寫死在框架中
5、包含動(dòng)態(tài)類型,而 JVM 不能對動(dòng)態(tài)代碼優(yōu)化,所以效率會(huì)比較低
在Java中可以通過Reflection APIs在運(yùn)行時(shí)動(dòng)態(tài)生成class實(shí)體,通過Constructor創(chuàng)建類實(shí)例、Field訪問成員屬性、Method調(diào)用方法
Class類
在Java中,每個(gè) class 都有一個(gè)相應(yīng)的 Class 對象。在編譯完成后,在生成的.class文件中,會(huì)產(chǎn)生一個(gè)Class對象,用于表示這個(gè)類的類型信息。
特點(diǎn):
1、由系統(tǒng)創(chuàng)建Class類
2、同一個(gè)類的實(shí)例指向同一個(gè)Class對象
3、通過Class可以完整的得到一個(gè)類所有被加載的結(jié)構(gòu)
4、Class類是Java反射的基礎(chǔ)
獲得Class類的方法:
public class MyReflect { public static void main(String[] args) throws ClassNotFoundException { Teacher t = new Teacher(); // 1、通過對象獲得 Class c1 = t.getClass(); // 2、forName + 全限定名 獲得 Class c2 = Class.forName("reflect.Teacher"); // 3、通過類名獲得 Class c3 = Teacher.class; // 4、基本數(shù)據(jù)類型的Type屬性獲得 Class c4 = Double.TYPE; // 5、通過子類的Class對象獲得 Class c5 = c1.getSuperclass(); } } class Person { String name; public Person() { } } class Teacher extends Person { public Teacher() { } }
當(dāng)前文章:Java基于反射機(jī)制獲取不同類的方法-創(chuàng)新互聯(lián)
當(dāng)前地址:http://jinyejixie.com/article42/dpocec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(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)容