更新時間:2020-05-07 12:45:30 來源:動力節點 瀏覽2157次
第一步當然是了解反射是什么東西:
指在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法,對于任意一個對象,都能調用它的任意一個方法.這種動態獲取信息,以及動態調用對象方法的功能叫java語言的反射機制;(通俗點講,通過反射,該類對我們來說是完全透明的,想要獲取任何東西都可以(轉載);)
下面我就通過反射獲取類中的方法:
先創建一個類,在類中有方法,構造器和成員變量(沒有截太多了只是提一下),在圖中可以看到有公有和私有的方法,等一下要分別獲取公有和私有的方法;
我們可以通過這三個方式去指定反射的那個類;都差不多,下面我就用class2去指定上面圖中的類;
步驟:
通過getDeclaredMethods類去獲取指定類中的方法;
創建一個字符串對象,通過遍歷獲取修飾符,返回值和參數;
因為參數可能是多個或者沒有參數,所以要在獲取參數時遍歷一下參數,然后將它們拼接起來,方便瀏覽;
這樣就可以獲取到類中的方法:
獲取修飾符,返回值和參數的代碼沒有多少,只是為拼接的好看一點所以代碼的比較多;返回值可以通過getSimpleName這個類,簡化它的格式;不然它會在前面加上包名和類名;
說完了獲取,下面就了解一下如何調用這個類的方法:
注意:
1.調用getDeclaredMethod可以訪問公有也可以訪問私有的方法,而getMethod(只能訪問類中聲明為公有的方法);
2.無法直接訪問的方法不一定是私有 設置允許訪問method.setAccessible(true);
下面是調用方法的運行結果:
從結果可以看到它調用了類中Say和Say1倆個方法;
反射不單單可以獲取方法,還可以獲取構造器和成員變量;
以上就是動力節點java培訓機構的小編針對“編程入門,Java反射獲取方法屬性調用”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習