使用spring的LocalVariableTableParameterNameDiscoverer获取类方法参数名称列表
2018-01-22 10:08
791 查看
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"; } }
相关文章推荐
- Spring LocalVariableTableParameterNameDiscoverer获取方法的参数名
- 通过Spring LocalVariableTableParameterNameDiscoverer 获取方法参数名
- 使用javassist获取类方法参数名称列表
- 用BootstrapTable展示列表: 通过queryParams传参数到Spring的Controller中,request.getParameter("XXXX")获取不到任何参
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- spring boot中controller的使用及url参数的获取方法
- Spring AOP获取拦截方法的参数名称跟参数值
- xml读取.sax解析方式 使用于Android 和java中 ,代码是java的, 在Android中只需要 区别监听类中的参数(localName,qName),相反的,java中使用qname 为节点的名称;
- springboot 中使用 AOP 打印 类名、方法名、方法参数名称和方法参数值
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- 使用ASM获取java的构造函数参数名称和方法参数名称
- Spring获取方法参数名称的分析
- 使用Java8获取方法参数名称
- Spring AOP获取拦截方法的参数名称跟参数值
- java 通过反射获取方法参数列表名称
- Spring 中 java 获取方法参数名称
- 利用Uri获取返回的参数即getQueryParameter()方法的使用
- java获取方法的参数名称列表
- 利用Uri获取返回的参数即getQueryParameter()方法的使用
- Spring之运行时获取controller参数名称的方法