反射機制的運用例項

2021-10-19 17:32:00 字數 1298 閱讀 5271

反射機制的運用例項:

例項一:使用反射機制繞過型別檢查(泛型)

//建立集合物件,指定元素型別

arraylistal = new arraylist();

al.add("hello");

//獲取class類物件

class<? extends arraylist> c = al.getclass();

//獲取集合的add方法

method m = c.getdeclaredmethod("add",object.class);

//為集合新增元素

m.invoke(al,30);

//把集合元素列印到控制台

system.out.println(al);

例項二:使用反射機制實現對任意型別物件的任意成員屬性值進行設定

class<? extends object> c = obj.getclass();

field f = c.getdeclaredfield(field);

f.setaccessible(true);

f.set(obj, value);

例項三:屬性檔案運用到反射機制中

1、在不改變**的前提下

2、通過配置檔案的修改實現不同類的不同方法的呼叫

//建立屬性類物件

properties prop = new properties();

//獲取輸入流

prop.load(new fileinputstream("files/reflect.properties"));

//獲取屬性檔案的鍵

string classname = prop.getproperty("classname");

string method = prop.getproperty("methodname");

//根據屬性類獲取到屬性檔案的鍵後,運用到反射機制中

class c = class.forname(classname);

constructor con = c.getdeclaredconstructor();

con.setaccessible(true);

object obj = con.newinstance();

//獲取成員方法

method m = c.getdeclaredmethod(method);

m.setaccessible(true);

//呼叫成員方法

object inv = m.invoke(obj);

java反射機制,例項

templist 根據傳入的pmid不同建立的list對應的model不同,但是又要獲得這個templist 的屬性像pointname,changethis等等,object不能用get 屬性名來獲取,只能用反射獲得字段陣列,進而獲取欄位名,字段值。public string getexportp...

JAVA反射機制例項

test1.class public class test 3 getmethod 方法名,引數型別1,引數型別2.不常用 method cls.getmethod test2 int.class system.out.println method method 4 getmethods 獲取該類和...

反射的基礎運用

1.獲取class物件的三種方法 1 public class demoreflect catch classnotfoundexception e 15 16 2.獲取class物件的資訊 1 public class getclassinfo 11 3.獲得類物件的構造方法並用構造方法獲得例項物...