步驟1:
獲取到當前執行緒的類載入器
classloader classloader= thread.
currentthread()
.getcontextclassloader()
;
步驟2:
用類載入器獲取的class物件
class clazz
= classloader.
loadclass
("com.wxw.test.blockqueue.reftest"
);
步驟三:
使用class物件獲取想要指向的目標私有方法
m是方法名,null指沒有引數
method method= clazz.
getdeclaredmethod
("m"
,null)
;
步驟四:
生成目標物件的例項,這裡使用的是預設的構造方法,也可以使用getdeclaredconstructor()方法,獲取任意的構造器生成例項
reftest reftest=
(reftest) clazz.
newinstance()
;
步驟五:
設定允許訪問私有方法
method.
setaccessible
(true
);
步驟六:
使用例項呼叫方法
method.
invoke
(reftest,null)
;
反射呼叫類的私有方法與私有內部類的私有方法
package org.example import j ax.lang.model.element.variableelement public class dt class students private string get2 string b private class dt 在stude...
使用反射機制實現對類中私有方法的呼叫
首先先要獲取這個類的類,假設我宣告了乙個類,類名為item 宣告乙個方法物件,private method getpackagesizeinfo 通過.class獲取類的類物件 class item item.class 通過getdeclaredmethod 第乙個引數為類中想要呼叫的方法的名字 ...
Java呼叫外部私有方法
描述 在寫單元測試的時候,要測試乙個私有方法 解決方案 利用反射,呼叫私有方法 呼叫私有方法 param c class名 param methodname 方法名 param parameters 方法引數 return method實體 throws nosuchmethodexception ...