反射學習 二

2021-09-14 01:58:03 字數 1340 閱讀 8390

通過反射獲取到的字段使用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反射學習

應用在一些通用性較高的 中 框架的底層基於反射 在框架開發中,都是基於配置檔案開發,在配置檔案中配置子類,可以通過反射得到類中的所有內容,可以讓類中的某個方法執行 類中的所有內容 屬性 沒有引數的構造方法 有引數的構造方法 普通方法,都可以通過反射機制動態獲得。那麼接下來就看看怎麼通過反射來獲得類中...