package com.yanek.soa.test;
import java.lang.reflect.Method;
import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
public class MethodParmsVariableNameUtil {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws ClassNotFoundException {
String[] names=getMethodParams("com.yanek.soa.test.Test","test2");
for(String name:names){
System.out.println(name);
}
}
/**
* 获取方法所有参数名
* @param method
* @return
*/
public static String[] getParameterNames(Method method) {
return parameterNameDiscoverer.getParameterNames(method);
}
private static final LocalVariableTableParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer();
public static String[] getMethodParams(String className, String methodName) throws ClassNotFoundException {
Class<?> aClass = Class.forName(className);
Method[] methods = aClass.getMethods();
String[] params = null;
for (Method method : methods) {
if (method.getName().equals(methodName)) {
params = getParameterNames(method);
if (params == null || params.length == 0) {
break;
}
StringBuilder sb = new StringBuilder();
sb.append("方法:" + method.getName() + "() ");
for (int i = 0; i < params.length; i++) {
if (i > 0) {
sb.append(" ,");
}
sb.append(params[i]);
}
System.out.println(sb.toString());
break;
}
}
return params;
}
}
package com.yanek.soa.test;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
}
public String test(String a,String b,User user) {
return "hello";
}
public static String test2(String a,String b,User user) {
return "hello";
}
public static String test3(String p1,String p2,User user) {
return "hello";
}
}