java反射呼叫Bean指定方法
阿新 • • 發佈:2019-01-24
步驟:
一:獲取到bean的物件,方式有兩種,
1.通過Spring上下文獲取到bean物件
Object object = SpringContextUtils.getBean(tableName+"Service");
Class selectsClass = object.getClass();
2.通過Class.forName初始化載入bean
Class selectsClass= Class.forName(TableSelectsUtil.class.getName());
二:通過方法名獲取方法物件
Method methodmethod = selectsClass.getMethod("getAll", new Class[] {String.class});
其中String.class為引數型別,多個引數需要新增多個,“getAll”為方法名,selectsClass為bean的物件。
三:通過Method物件反射呼叫物件傳入引數獲取返回值
Object result = (List<Map<String,String>>)method.invoke(object, new Object[] {new String("test")});
呼叫method的invoke方法,第一個引數是類的例項,通過Class的newInstance()方法可以初始例項(如果類中含有需要spring注入的屬性,只能通過spring上下文獲取例項),如果方法是靜態的則不需要初始化Class,直接傳入Null即可;第二個引數是改方法的引數,多個引數寫入new Object[]{}即可。