java反射 4 反射賦值

2021-08-09 07:56:11 字數 1261 閱讀 2742

本篇介紹利用反射給物件賦值

方法1 獲得並使用預設構造器建立類的物件   並對物件賦值  

這裡類用的是person類   屬性有 id ,name ,address  來做例子

public class person 

public void setid(integer id)

public string getname()

public void setname(string name)

public string getaddress()

public void setaddress(string address)

@override

public string tostring()

public person()

public person(integer id, string name, string address)

}

**如下:

public static void main(string args) throws exception );

//根據類的預設構造器來獲得乙個物件

object instance = constructor.newinstance(new object {});

system.out.println(instance);

method methods=class1.getdeclaredmethods();

for(method m:methods) );

}if(type==string.class&&fieldname.equals("address")) );

}if(type==string.class&&fieldname.equals("name"))

m.invoke(instance, new object );}}

system.out.println(instance);

方法2  獲得並使用person的帶參構造器  建立物件 並賦值
constructor<?> constructor1 = class1.getdeclaredconstructor(new class );

object instance1 = constructor1.newinstance(new object );

system.out.println(instance1);

C 反射賦值

tb projects model new tb projects model.ownerid 123 string fieldname ownerid 欄位名稱 string value 333 type t model.gettype var p t.getproperty fieldname ...

反射 4 Type反射

1 activator.createinstance type t 會動態呼叫類的public無參建構函式建立乙個物件,返回值就是建立的物件,如果類沒有無參建構函式就會報錯。2 應用 動態建立物件sayhello。介面宣告到單獨的專案中,避免迴圈引用。如下 using system using sy...

java反射 通用的java反射工具

因專案需要,需要反射呼叫安卓系統audiomanager的一些方法,這些方法或者使用 hide標記,或者需要的sdk版本比較高,無法直接呼叫,這個時候,反射就是一大神器了。正常的反射呼叫流程如下 非靜態有返回值方法反射 class clazz class.forname full classname...