如何使用java反射技術呼叫類和方法及給方法傳參

2021-07-26 19:18:47 字數 789 閱讀 1039

//動態載入類

scanner scan = new scanner(system.in);

system.out

.println("輸入類名:");

string classname = scan.nextline();

class cls = class.forname(classname);

//1.找到demo方法

//class 提供了根據方法簽名找到指定方法資訊的api

string name = "demo"

; //方法名

//型別列表class

表示字串的型別

表示int型別

//任何.class 表示任何的型別

class types = ;

//根據方法簽名在cls查詢方法的資訊

method method = cls

.getdeclaredmethod(name, types);

//找到了私有方法

system.out

.println(method);

//執行私有方法

//開啟方法的執行許可權!!!違反封裝!

method.setaccessible(true);

object obj = cls

.newinstance();

object value = method.invoke(obj, "carl",16);

system.out

.println(value);

使用反射呼叫類靜態方法

呼叫靜態的方法 assembly asm assembly.load infosystem 命名空間 type t asm.gettype infosystem.sqlquery 命名空間加型別名稱 sqlquery sqlquery t.invokemember getinstance bindi...

Java反射工具類

反射工具類 public class reflectionutil return field.get object catch exception e return null 通過反射獲取靜態成員的值 param classvar param fieldname return 靜態成員的值 supp...

java通過反射呼叫方法

業務中有個場景是這樣的,根據傳入不同的值生成不同的訊息體。這個時候如果用switch或ifelse的話那每一層 都很多,而且不利於維護。於是想到乙個方法,根據傳入的引數呼叫不同的方法 引數即方法 這樣便於維護也利於 的健壯性。如下 示例 先獲取方法,type方法名,this.getclass 引數型...