編程入門,Java反射獲取方法屬性調(diào)用

編程入門,Java反射獲取方法屬性調(diào)用

北大青鳥長沙麓谷校區(qū)      2022-04-14 16:14:01     1

編程入門,Java反射獲取方法屬性調(diào)用,第一步當(dāng)然是了解反射是什么東西:指在運(yùn)行狀態(tài)中,對于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法,對于任意一個(gè)對象,都能調(diào)用

課程價(jià)格 請咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

    第一步當(dāng)然是了解反射是什么東西:

    指在運(yùn)行狀態(tài)中,對于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法,對于任意一個(gè)對象,都能調(diào)用它的任意一個(gè)方法.這種動(dòng)態(tài)獲取信息,以及動(dòng)態(tài)調(diào)用對象方法的功能叫java語言的反射機(jī)制;(通俗點(diǎn)講,通過反射,該類對我們來說是完全透明的,想要獲取任何東西都可以(轉(zhuǎn)載);)

    下面我就通過反射獲取類中的方法:

    

    先創(chuàng)建一個(gè)類,在類中有方法,構(gòu)造器和成員變量(沒有截太多了只是提一下),在圖中可以看到有公有和私有的方法,等一下要分別獲取公有和私有的方法;

    我們可以通過這三個(gè)方式去指定反射的那個(gè)類;都差不多,下面我就用class2去指定上面圖中的類;

    

    步驟:

    通過getDeclaredMethods類去獲取指定類中的方法;

    創(chuàng)建一個(gè)字符串對象,通過遍歷獲取修飾符,返回值和參數(shù);

    因?yàn)閰?shù)可能是多個(gè)或者沒有參數(shù),所以要在獲取參數(shù)時(shí)遍歷一下參數(shù),然后將它們拼接起來,方便瀏覽;

    這樣就可以獲取到類中的方法:

     

    獲取修飾符,返回值和參數(shù)的代碼沒有多少,只是為拼接的好看一點(diǎn)所以代碼的比較多;返回值可以通過getSimpleName這個(gè)類,簡化它的格式;不然它會(huì)在前面加上包名和類名;

    說完了獲取,下面就了解一下如何調(diào)用這個(gè)類的方法:

   

    注意:

    1.調(diào)用getDeclaredMethod可以訪問公有也可以訪問私有的方法,而getMethod(只能訪問類中聲明為公有的方法);

    2.無法直接訪問的方法不一定是私有 設(shè)置允許訪問method.setAccessible(true);

    下面是調(diào)用方法的運(yùn)行結(jié)果:

    從結(jié)果可以看到它調(diào)用了類中Say和Say1倆個(gè)方法;

    

    反射不單單可以獲取方法,還可以獲取構(gòu)造器和成員變量;

 以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對“編程入門,Java反射獲取方法屬性調(diào)用”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請核實(shí)對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。