發射使用流程:
1、通過
class.classforname(「配置檔案中的路徑」); 獲取 位元組碼檔案
class clazz = class.forname("reflect.person");
2、通過
clazz.getconstructor(
引數型別
.class);
獲得 建構函式
constructor con = clazz.getconstructor(null); //(構造函式引數型別
)使用 .newinstance(null);構造物件
p = (person) con.newinstance(null); //給物件的引數
3、通過
clazz.getmethod(「方法名」,引數型別
.class);
獲得 成員方法
method method = clazz.getmethod("getname", null);//獲取
getname();
方法method.incoke(「物件」,傳參);
method.invoke(p, null);
4、通過
clazz.getdeclaredmethod(「方法名」,引數型別
.class);
獲得 私有方法
method method = clazz.getdeclaredmethod("printto", string.class);
通過method.setaccessible(true);
設定訪問許可權
method.setaccessible(true); //暴力訪問類私有方法
method.invoke(p,"xiehe");
5、通過
clazz.getfield(「欄位名」);獲取類的 字段屬性
field field = clazz.getfield("add");//獲得字段域
通過field.get(
對像);
獲得字段值
string value = (string) field.get(p);
6、通過
clazz.getdeclaredfield(「欄位名」);獲得私有 字段屬性
field field = clazz.getdeclaredfield("num");
field.setaccessible(true); //設定訪問許可權
int value = (int) field.get(p); //獲取值
C 反射學習
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...
Java反射學習
應用在一些通用性較高的 中 框架的底層基於反射 在框架開發中,都是基於配置檔案開發,在配置檔案中配置子類,可以通過反射得到類中的所有內容,可以讓類中的某個方法執行 類中的所有內容 屬性 沒有引數的構造方法 有引數的構造方法 普通方法,都可以通過反射機制動態獲得。那麼接下來就看看怎麼通過反射來獲得類中...
php 反射學習
早知道php 有反射的概念一直沒抽出空來。今天看書裡面有個這玩意 弄個例子搞搞。不過似乎專案中用處不大。印象中似乎就 thinkphp 3.1 裡面的 控制器呼叫使用了反射 class person public function set name value public function get...