日期:2014-05-20  浏览次数:20725 次

反射问题请教
前台传一个json字符串,没有告诉我参数的类型,我想用反射机制动态调用对应的方法,但是参数匹配不了。请教下,这个参数类型如何能根据动态转换。
args[i] = (m.getParameterTypes()[i].getName())(jo.get(key));
就是这个地方,我希望将某个json的参数动态转换成与方法匹配的类型。
m.invoke(c.newInstance(), args);
没有转换就会报参数不匹配的异常。


------解决方案--------------------
这个需要反射吗?没有必要把,动态参数也没有必要,可以在前台这样封装JSON数据:
[{'name':'paramName','value':'paramValue'},{'name':'paramName','value':'paramValue'},....]
动态生成这个JSON数据就可以了,然后在后台转换成JSONArray对象,遍历每一个JSONObject,通过jobj.name、jobj.value就可以知道参数名和值了。