通過反射獲取到的字段使用field類表示,field類提供了一系列的方法來訪問基礎資料型別,如getint()
,getboolean()
field
field
=testclass
.getfield
("intdata"
);inta=
field
.getint
(test
);field
.setint
(test,5
);
通過setint()
還可以修改乙個物件的值,要注意的是使用get,set方法都要傳入乙個物件,作為獲取或者修改的物件.
通過反射獲取的方法可以用method類來表示,methon提供了乙個invoke()
提供對方法的呼叫.
method method = testclass.getmethod("getintdata");
method.invoke(test, null);
如果方法是靜態的,第乙個引數應該為空,表示不需要物件.
通過反射獲得乙個構造方法用constructor來表示,可以利用構造器建立乙個新的例項.通過class物件的乙個方法:newinstance()
也可以建立乙個新的例項,但是收到限制的是這個方法本身不能傳遞引數,但是如果使用constructor物件來建立新的物件就可以使用引數.
constructor
constructor
=testclass
.getconstructor
(integer
.class
,integer
.class
);constructor
.newinstance(5
,6);
獲取構造方法的時候需要傳入引數的型別,呼叫時直接傳入引數.
通過反射可以獲得註解,使用annotation類來表示,通過annotation物件可以獲得annotation的註解資料
costomannotation
annotation
=field
.getannotation
(costomannotation
.class
);int
code
=annotation
.code
();
反射配合註解可以實現注入.
??正文結束??
反射學習 二
通過反射獲取到的字段使用field類表示,field類提供了一系列的方法來訪問基礎資料型別,如getint getboolean field field testclass getfield intdata inta field getint test field setint test,5 通過s...
C 反射學習
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...
Java反射學習
應用在一些通用性較高的 中 框架的底層基於反射 在框架開發中,都是基於配置檔案開發,在配置檔案中配置子類,可以通過反射得到類中的所有內容,可以讓類中的某個方法執行 類中的所有內容 屬性 沒有引數的構造方法 有引數的構造方法 普通方法,都可以通過反射機制動態獲得。那麼接下來就看看怎麼通過反射來獲得類中...