问题描述
AllBOClient xf = new AllBOClient(pb.getWsdlurl());AllBOPortType bo = xf.getAllBOHttpPort();bo.notice2Province(a[1],a[0]);在数据库中存有notice2province的值,怎样运用反射机制动态获得notice2province的值?问题补充:从数据库读出值来替换notice2Province问题补充:congjl2002的答案似乎还少了一步,我还需要向得到的方法中传入两个值a[1],a[0]问题补充:AllBOClient xf = new AllBOClient(pb.getWsdlurl()); AllBOPortType bo = xf.getAllBOHttpPort(); Class c=Class.forName("com.sg186.sgic.wsclient.AllBOPortType");Method method = bo.getClass().getDeclaredMethod("notice2province", Object.class, Object.class);//set your parameters type here method.invoke(bo, a[1], a[0]); 对hjgundam的回答,我有两个问题没明白:1、不用Class.forName("com.sg186.sgic.wsclient.AllBOPortType");吗?2、Object.class, Object.class代表什么?应该传入什么值?其实这个回答已经很好了,希望能解释一下上面两个问题.谢谢!
解决方案
我大概明白你的意思了,从数据库读出来的值来决定调用那个方法,然后传入两个参数Method method = bo.getClass().getDeclaredMethod("notice2province", Object.class, Object.class);//set your parameters type heremethod.invoke(bo, a[1], a[0]);
解决方案二:
你说的是获得“notice2province”字符串吗?可以这样Method[] methods = bo.getClass().getMethods();for (Method m:methods) { method.getName();}
解决方案三:
如何通过java反射机制动态获得方法名??在数据库中存有notice2province的值,怎样运用反射机制动态获得notice2province的值? ??我不明白你问得是什么?要获得方法名还是数据库取值?