版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 Java 反射機(jī)制 反射機(jī)制Reflection 是 Java 程序 言的特征之一, 允 行中的 開發(fā)語(yǔ) 它 許運(yùn) Java 程序 自身 行 ,或者 “自 ”, 對(duì) 進(jìn) 檢查 說(shuō) 審能直接操作程序的 部 性。例如,使用 能 得 并 內(nèi) 屬 它 獲 Java 中各成 的名 示出 。 類 員 稱并顯 來(lái)1.1 一 的例子 個(gè)簡(jiǎn)單 一 的例子 個(gè)簡(jiǎn)單考 下面 的例子, 我 看看 慮 這個(gè)簡(jiǎn)單 讓 們 reflection 是如何
2、工作的。 Java 代碼import java.lang.reflect.*;public class DumpMethods {public static void main ( String args [ ] ) {try {Class c = Class . forName ( args [ 0 ] ) ;Method m [ ] = c . getDeclaredMethods ( ) ;for ( Int i= O ; I &
3、lt; m . length ; i + + )System . out . println ( m [ i ] . toString ( ) ) ;} catch ( Throwable e) {System . err . println ( e ) ;}}}按如下 句 行: 語(yǔ) 執(zhí)Java 代碼java DumpMethods java.util.Stack 的 果 出 : 它 結(jié) 輸 為Java 代碼public jav
4、a.lang.Object java.util.Stack.push(java.lang.Object) public synchronized java.lang.Object java.util.Stack.pop() public synchronized java.lang.Object java.util.Stack.peek() public boolean java.util.Stack.empty() p
5、ublic synchronized int java.util.Stack.search(java.lang.Object) 就列出了 這樣 java.util.Stack 的各方法名以及 的限制符和返回 型。 程序使用 類 它們 類 這個(gè) Class.forName 入指 載定的 ,然后 用 類 調(diào) getDeclaredMethods 取 中定 了的方法列表。 來(lái)獲 這個(gè)類 義 java.lang.reflect.M
6、ethods 是用 描述某 來(lái)中 方法的一 。 個(gè)類 單個(gè) 個(gè)類1.2 始使用 開始使用 開 Reflection用于 reflection 的 ,如 類 Method,可以在 java.lang.relfect 包中找到。使用 些 的 候必 要遵循三 步 : 這 類 時(shí) 須 個(gè) 驟第一步是 得 想操作的 的 獲 你 類 java.lang.Class 象。在 行中的 對(duì) 運(yùn) Java 程序中,用 java.lang.Cl
7、ass 描述 和接 類來(lái) 類口等。 下面就是 得一獲 個(gè) Class 象的方法之一: 對(duì)Class c = Class.forName(“java.lang.String“); 句得到一這條語(yǔ) 個(gè) String 的 象。 有另一 方法,如下面的 句: 類 類對(duì) 還 種 語(yǔ)Class c = int.class; 或者 Class c = Integer.TYPE; 可 得基本 型的 信息。其中后一 方法中 的是基本 型的封裝它
8、們 獲 類 類 種 訪問 類 類 (如 Integer) 中 先定 好的 預(yù) 義 TYPE 字段。 第二步是 用 如 調(diào) 諸 getDeclaredMethods 的方法,以取得 中定 的所有方法的列表。 該類 義System.out.println(“param #“ + j + “ “ + pvec[j]);Class evec[] = m.getExceptionTypes();for (int j = 0; j <
9、evec.length; j++)System.out.println(“exc #“ + j + “ “ + evec[j]);System.out.println(“return type = “ + m.getReturnType());System.out.println(“-----“);}} catch (Throwable e) {System.err.println(e);}}}程序首先取得 這個(gè) method1 的
10、描述,然后 用 類 調(diào) getDeclaredMethods 取一系列的 來(lái)獲 Method 象, 分 描 對(duì) 它們 別述了定 在 中的每一 方法,包括 義 類 個(gè) public 方法、 protected 方法、 package 方法和 private 方法等。 如果 在程序中使 你用 getMethods 代替 來(lái) getDeclaredMethods, 能 得 承 的各 方法的信息。 你還 獲 繼 來(lái) 個(gè)取得了 M
11、ethod 象列表之后,要 示 些方法的 型、 常 型和返回 型等就不 了。 些 型是基本 型 對(duì) 顯 這 參數(shù)類 異 類 值類 難 這 類 類是 型,都可以由描述 的 象按 序 出。 還 類類 類 對(duì) 順 給出的 果如下: 輸 結(jié)Java 代碼name = f1 decl class = class method1 param #0 class java.lang.Object param #1 int exc #
12、0 class java.lang.NullPointerException return type = int ----- name = main decl class = class method1 param #0 class [Ljava.lang.String; return type = void ----- 1.4 取 造器信息 獲 構(gòu) 取 造器信息 獲 構(gòu)取 造器的用法 上述 取方法的用法 似,
13、如: 獲 類構(gòu) 與 獲 類Java 代碼import java.lang.reflect.*;public class constructor1 {public constructor1() {}protected constructor1(int i, double d) {}public static void main(String args[]) {try {Class cls = Class.forName(“constru
14、ctor1“);Constructor ctorlist[] = cls.getDeclaredConstructors();for (int i = 0; i < ctorlist.length; i++) {Constructor ct = ctorlist[i];System.out.println(“name = “ + ct.getName());System.out.println(“decl class = “ +
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java反射原理
- 基于反射機(jī)制的輕量級(jí)Java持久層框架設(shè)計(jì)與實(shí)現(xiàn).pdf
- java proxy和rtti(反射)實(shí)現(xiàn)動(dòng)態(tài)代理工廠
- 反射機(jī)制的研究與應(yīng)用.pdf
- 基于反射機(jī)制CTM動(dòng)態(tài)特性研究.pdf
- 基于反射機(jī)制的ERP構(gòu)件組裝系統(tǒng).pdf
- JAVA安全機(jī)制的研究與應(yīng)用.pdf
- 耳-迷走反射與耳針降糖效應(yīng)機(jī)制研究.pdf
- Java消息服務(wù)機(jī)制的研究與應(yīng)用.pdf
- 基于反射機(jī)制的框架研究與實(shí)現(xiàn)畢業(yè)論文
- 鏡面反射與漫反射
- 角膜反射和對(duì)光反射
- Java虛擬機(jī)關(guān)鍵機(jī)制研究與實(shí)踐.pdf
- 2272.小腦、腦干在大鼠喉化學(xué)反射和小鼠眨眼條件反射中的調(diào)控機(jī)制研究
- 基于泵浦-探測(cè)機(jī)制的選擇反射光譜研究.pdf
- Java語(yǔ)言的異常處理機(jī)制的公理語(yǔ)義.pdf
- 基于Java異常處理機(jī)制的分析與研究.pdf
- 基于反射機(jī)制的面向?qū)ο笾虚g件QoS管理.pdf
- 重配置機(jī)制研究——反射在WebQoS控制中的應(yīng)用.pdf
- 耳-迷走反射及耳針抗癲癇的效應(yīng)機(jī)制研究.pdf
評(píng)論
0/150
提交評(píng)論