我的需求如下:
我们知道下面2行代码中的,IUsersDAO是一个dao类的接口。
ApplicationContext ctx=new ClassPathXmlApplicationContext("*ac.xml");
IUsersDAO iusersdao=(IUsersDAO)ctx.getBean("UsersDAO");
但是目前我只知道这个dao类的名称,是字符串形式,通过反射的getInterface()方法可以得到该接口,但是如何应用到ctx.getBean("UsersDAO");的前边进行强转,从而调用该接口的方法。
我们知道下面2行代码中的,IUsersDAO是一个dao类的接口。
ApplicationContext ctx=new ClassPathXmlApplicationContext("*ac.xml");
IUsersDAO iusersdao=(IUsersDAO)ctx.getBean("UsersDAO");
但是目前我只知道这个dao类的名称,是字符串形式,通过反射的getInterface()方法可以得到该接口,但是如何应用到ctx.getBean("UsersDAO");的前边进行强转,从而调用该接口的方法。
没看懂
如何用反射得到它,并放到ctx.getBean("UsersDAO");前边。
可以不用强制转换:
Object iusersdao=ctx.getBean("UsersDAO");
用反射调用:
Class t=iusersdao.class;
Method m=t.getMethod("insertUser", new Class[]{String.class}) ;
Object returnvalue=m.invoke(iusersdao,"userA");
我就是想得到那个接口,能不能操作到呢。
如果楼主在意的是如下
Class t=iusersdao.class;
Method m=t.getMethod("insertUser", new Class[]{String.class}) ;
Object returnvalue=m.invoke(iusersdao,"userA");
那么再用Spring有点脱裤子放屁之嫌,还不如直接ClassLoader也加上,全套齐活了。