利用反射機制呼叫私有方法

2021-10-07 19:06:54 字數 882 閱讀 9102

步驟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 ...