java反射訪問方法

2021-08-25 08:03:17 字數 1792 閱讀 7827

通過下列一組方法訪問方法是,將返回method型別的物件或者陣列,每個method代表乙個方法,利用method可以操縱對應的方法。

a:獲取所有方法 陣列

1、getmethods  獲取該類包括其父類的公共成員方法

2、getdeclaredmethods  獲取該類的所有的成員方法

b:獲取單個方法

1、getmethod 獲取該類所有的公共類單個成員方法

2、getdeclaredmethod 獲取該類所有型別的單個成員方法

a.1:獲取該類包括其父類的公共成員方法 

//獲取位元組碼檔案        

class c = class.forname("zl_relfect_01.person");

//獲得該類與父類的所有的公共成員方法

method m1 = c.getmethods();

for(method m : m1)

a.2:getdeclaredmethods  獲取該類的所有的成員方法

//獲取位元組碼檔案        

class c = class.forname("zl_relfect_01.person");

//獲取該類的所有型別的成員方法

method m1 = c.getdeclaredmethods();

for(method m : m1)

b:獲取單個成員方法:

//獲取位元組碼檔案        

class c = class.forname("zl_relfect_01.person");

//無參構造建立物件

constructor con = c.getconstructor();

object obj = con.newinstance();

//獲取該類單個無參無返回值公共型別的成員方法

//無參的成員方法,只需寫成員方法的名稱

method m1 = c.getmethod("show");

// public object invoke(object obj,object... args) 返回值是object接收,第乙個引數表示物件是誰,第二引數表示呼叫該方法的實際引數

//show是無參,無返回值構造

m1.invoke(obj);//呼叫person類的show方法

//獲取該類單個有參有返回值公共型別的成員方法

method m2 = c.getmethod("method", string.class);

//沒有返回值

m2.invoke(obj, "哈嘍");呼叫person類的method方法

//獲取該類單個有參有返回值公共型別的成員方法

method m3 = c.getmethod("getstring", string.class,int.class);

//有返回值, public object invoke(object obj,object... args) 返回值是object接收

object ob1 = m3.invoke(obj, "哈嘍",123);

system.out.println(ob1);

//獲取該類單個 無參無返回值的私有成員方法

method m4 = c.getdeclaredmethod("function");

//取消語言訪問檢查

m4.setaccessible(true);

//呼叫person類的function方法

m4.invoke(obj);

java反射 方法

取全部set方法 param t return public static final setget methods class t return methodset method知識 1.類方法 用static修飾的方法。由於類方法是屬於整個類的,所以類方法的方法體中不能有與類的物件有關的內容。即...

Java 反射 普通方法

獲取普通方法 借助class類某些可以獲取對應類中宣告的普通方法例項物件,這些方法有 對parametertypes的解釋 如果方法引數的資料型別為基本資料型別,則parametertype應為基本資料型別包裝類.type 如果方法引數的資料型別為基本資料型別包裝類,則的資料型別應為包裝類.clas...

《java之反射訪問私有域和私有方法》

如下 public class privateobject 如下 privateobject privateobject new privateobject the private value 例項化物件 field privatestringfield privateobject.class.ge...