javase筆記.反射調(diào)用普通方法_第1頁
javase筆記.反射調(diào)用普通方法_第2頁
javase筆記.反射調(diào)用普通方法_第3頁
javase筆記.反射調(diào)用普通方法_第4頁
javase筆記.反射調(diào)用普通方法_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1、知識點(diǎn):反射調(diào)用普通方法如何利用反射進(jìn)行普通方法的調(diào)用2、具體內(nèi)容在類之中除了構(gòu)造方法之外,最為重要的還有普通方法,而利用反射也可以實(shí)現(xiàn)普通方法的調(diào)用,但是在講解之前有一點(diǎn)注意事項(xiàng)需要進(jìn)行說明:在進(jìn)行類中普通方法調(diào)用時(shí)必須已經(jīng)存在有類的實(shí)例化對象。于是根據(jù)此編寫如下的驗(yàn)證代碼。在 Class 類之中定義有如下的取得類之中方法的操作: 取得類之中的全部普通方法 取得類之中的指定方法范例:取得類之中的全部操作方法第(1)頁 共(6)頁package cn.demo;import java.lang.reflect.Method;class Book private String title ;

2、public void setTitle(String title) this.title = title ;public String getTitle() public Method getMethod(String name,Class. parameterTypes) throws NoSu ethodException,SecurityExceptionpublic Method getMethods() throws SecurityException通過 Method 類可以表示出方法的定義,那么這個(gè) Method 又是什么呢?在 Method 類之中有一個(gè)非常重要的方法:inv

3、oke 的單詞表示的是調(diào)用,實(shí)際上指的就是調(diào)用指定的對象操作方法。第(2)頁 共(6)頁package cn.demo;import java.lang.reflect.Method;public Object invoke(Object obj,Object. args)throws IllegalAc sException, IllegalArgumentException, InvocationExceptionreturn this.title ;public class TestDemo public sic void main(String args) throwsExceptio

4、n Class cls =Class.forName(cn.demo.Book) ;Method met = cls.getMethods() ; / 取得全部方法對象for (x = 0 ; x met.length ; x +) System.out.prln(metx);class Book private String title ;public void setTitle(Stringthis.title = title ;public String getTitle() return this.title ;title) public classpublic sException

5、ClassTestDemo ic void main(Stringargs)throwscls =Class.forName(cn.demo.Book) ;/ 實(shí)例化對象,此時(shí)沒有發(fā)生向下Object obj = cls.newInstance();Method setMet = cls.getMethod(setTitle,String.class) ;Method getMet = cls.getMethod(getTitle) ;setMet.invoke(obj, Java開發(fā)) ; / 對象.setTitle(Java開發(fā)) ;第(3)頁 共(6)頁同時(shí),在之前一直強(qiáng)調(diào),類之中的屬性

6、必須封裝,封裝后的屬性必須編寫 setter、getter。第(4)頁 共(6)頁package cn.demo;import java.lang.reflect.Method;class Book private String title ;public void setTitle(String title) this.title = title ;public String getTitle() return this.title ;public class TestDemo public sic void main(String args) throwsException / 已經(jīng)知道操

7、作的包.類名稱Class cls =System.out.prln(getMet.invoke(obj);Class.forName(cn.demo.Book) ;/ 已經(jīng)知道要操作的屬性名稱String attributeName = title ;/ 實(shí)例化對象,此時(shí)沒有發(fā)生向下Object obj = cls.newInstance() ; Method setMet = cls.getMethod(set +initcap(attributeName), String.class) ; Method getMet = cls.getMethod(get+initcap(attributeName) ;setMet.invoke(obj, Java開發(fā)) ; / 對象.setTitle(Java開發(fā)) ;System.out.prln(getMet.invoke(obj);/*實(shí)現(xiàn)單詞的首字母大寫param strreturn*/public sic String initcap(String str)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論