Spring LocalVariableTableParameterNameDiscoverer获取方法的参数名

时间:2025-03-20 07:54:24
package ; import .slf4j.Slf4j; import ; import ; /** * descrption: 通过spring的LocalVariableTableParameterNameDiscoverer 获取方法的参数,spring也是通过使用ASM通过字节码获取方法中参数的具体的名称 * authohr: wangji * date: 2017-08-15 10:20 */ @Slf4j public class GetMethArguments { private static final LocalVariableTableParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer(); public void testArguments(String test,Integer myInteger,boolean booleanTest){ } public void test(){ } public static void main(String[] args) { Method[] methods = (); for(Method method:methods){ String[] paraNames = (method); ("methodName:"+()); if(paraNames !=null){ StringBuffer buffer = new StringBuffer(); for(String string:paraNames){ (string).append("\t"); } ("parameArguments:"+()); }else{ ("无参数"); } } } //2017-08-15 10:32:46,914 INFO [:29] : methodName:main //2017-08-15 10:32:46,917 INFO [:35] : parameArguments:args //2017-08-15 10:32:46,917 INFO [:29] : methodName:test //2017-08-15 10:32:46,919 INFO [:35] : parameArguments: //2017-08-15 10:32:46,919 INFO [:29] : methodName:testArguments //2017-08-15 10:32:46,919 INFO [:35] : parameArguments:test myInteger booleanTest //2017-08-15 10:32:46,924 INFO [:29] : methodName:wait //2017-08-15 10:32:46,924 INFO [:37] : 无参数 //2017-08-15 10:32:46,924 INFO [:29] : methodName:wait //2017-08-15 10:32:46,924 INFO [:37] : 无参数 //2017-08-15 10:32:46,924 INFO [:29] : methodName:wait //2017-08-15 10:32:46,924 INFO [:37] : 无参数 //2017-08-15 10:32:46,924 INFO [:29] : methodName:equals //2017-08-15 10:32:46,925 INFO [:37] : 无参数 //2017-08-15 10:32:46,925 INFO [:29] : methodName:toString //2017-08-15 10:32:46,925 INFO [:37] : 无参数 //2017-08-15 10:32:46,928 INFO [:29] : methodName:hashCode //2017-08-15 10:32:46,928 INFO [:37] : 无参数 //2017-08-15 10:32:46,928 INFO [:29] : methodName:getClass //2017-08-15 10:32:46,928 INFO [:37] : 无参数 //2017-08-15 10:32:46,928 INFO [:29] : methodName:notify //2017-08-15 10:32:46,928 INFO [:37] : 无参数 //2017-08-15 10:32:46,928 INFO [:29] : methodName:notifyAll //2017-08-15 10:32:46,928 INFO [:37] : 无参数 }