步骤:
一:获取到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[]{}即可。