// public string display(string interests,int age)
class
clazz = person.
class
;// 建立執行時類的物件
person person = clazz.
newinstance()
;// getdeclaredmethod(引數1 :指明獲取的方法的名稱,引數2:指明獲取的方法的形參列表)
method display = clazz.
getdeclaredmethod
("display"
, string.
class
,int
.class);
display.
setaccessible
(true);
// 呼叫方法的invoke(引數1:方法的呼叫者,引數2:給方法形參賦值的實參): invoke()的返回值即為對應類中呼叫的方法的返回值。
object invoke = display.
invoke
(person,
"籃球",23
);system.out.
println
(invoke)
; system.out.
println
("*************如何呼叫靜態方法*****************");
// private static void showdesc()
method showdesc = clazz.
getdeclaredmethod
("showdesc");
// 保證當前方法是可訪問的
showdesc.
setaccessible
(true);
//如果呼叫的執行時類中的方法沒有返回值,則此invoke()返回null
// object returnval = showdesc.invoke(null);
object returnval = showdesc.
invoke
(person.
class);
system.out.
println
(returnval)
;//null
class clazz
= person.
class
;//private person(string name)
/* 1.獲取指定的構造器
getdeclaredconstructor():引數:指明構造器的引數列表
*/constructor constructor = clazz.
getdeclaredconstructor
(string.
class);
//2.保證此構造器是可訪問的
constructor.
setaccessible
(true);
//3.呼叫此構造器建立執行時類的物件
person per =
(person) constructor.
newinstance
("tom");
system.out.
println
(per)
;
獲取執行時類的結構
通過反射建立對應的執行時類的物件 public void test1 throws illegalacces ception,instantiationexception 獲取執行時類的方法結構 public class methodtest system.out.println getdeclar...
反射獲取執行時類的結構
屬性 1.getfields 獲取當前執行時類及其父類中宣告為public訪問許可權的屬性 2.getdeclaredfields 獲取當前執行時類中宣告的所有屬性。不包含父類中宣告的屬性 4.getmodifiers 許可權修飾符 5.gettype 資料型別 6.getname 變數名 獲取執行...
反射獲取執行時類的完整結構
field method constructor superclass inte ce annotation 1 實現的全部介面 2 所繼承的父類 3 全部的構造器 4 全部的方法 5 全部的field public class getinte ces 確定此物件所表示的類或介面實現的介面。publ...