通過下列一組方法訪問方法是,將返回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...