通过反射调用方法时,如何获取参数名称?
需求:1、通过Java反射的方式,调用某个类的某个方法,同时可以传递参数。
???????? 2、由于参数通过页面传递,所以均为String类型,用户需要填写参数名称和参数值。
?
问题:通过Java反射的方式,根据方法名称和传入的参数个数,顺利获取了Method,但是传递参数时却犯了难。
因为传递参数时,必须严格按照Method中定义的顺序,但是通过Java反射无法获取到方法中参数的顺序。
?
解决方案:使用第三方解决方案paranamer:http://paranamer.codehaus.org/。jar包很小,要求使用
JDK1.5以上。
?
核心代码?
Method method = ......(获取method)Paranamer paranamer = new BytecodeReadingParanamer();//parameterNames中,顺序保存了方法中定义的参数名称,第一个参数为parameterNames[0],依次类推String[] parameterNames = paranamer.lookupParameterNames(method);?1 楼 lykm02 2012-05-31 这个挺好的。
猜测是大概分析 byteclass 文件