您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“java反射機(jī)制實(shí)例代碼分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“java反射機(jī)制實(shí)例代碼分析”吧!
1.反射機(jī)制定義
java反射機(jī)制是在運(yùn)行狀態(tài)中,獲取任意一個(gè)類的結(jié)構(gòu) , 創(chuàng)建對象 , 得到方法,執(zhí)行方法 , 屬性 ; 這種在運(yùn)行狀態(tài)動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對象方法的功能被稱為java語言的反射機(jī)制。
2.反射機(jī)制的運(yùn)行過程
Java程序在運(yùn)行時(shí),Java運(yùn)行時(shí)系統(tǒng)一直對所有的對象進(jìn)行所謂的運(yùn)行時(shí)類型標(biāo)識。這項(xiàng)信息紀(jì)錄了每個(gè)對象所屬的類。虛擬機(jī)通常使用運(yùn)行時(shí)類型信息選準(zhǔn)正確方法去執(zhí)行,用來保存這些類型信息的類是Class類。
3.獲取 Class 對象有三種方式
// 1.通過字符串獲取Class對象,這個(gè)字符串必須帶上完整路徑名 Class studentClass = Class.forName("com.test.reflection.Student"); // 2.通過類的class屬性 Class studentClass2 = Student.class; // 3.通過對象的getClass()函數(shù) Student studentObject = new Student(); Class studentClass3 = studentObject.getClass();
第一種方法是通過類的全路徑字符串獲取 Class 對象,這也是我們平時(shí)最常用的反射獲取 Class 對象的方法;
第二種方法有限制條件:需要導(dǎo)入類的包;
第三種方法已經(jīng)有了 Student 對象,不再需要反射。
通過這三種方式獲取到的 Class 對象是同一個(gè),也就是說 Java 運(yùn)行時(shí),每一個(gè)類只會生成一個(gè) Class 對象。
Java是一門面向?qū)ο缶幊陶Z言,可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。
到此,相信大家對“java反射機(jī)制實(shí)例代碼分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。