Java如何获取方法参数的参数名称?
2017-10-10 12:53
861 查看
1. Java8
public class TestGetMethodParamName { public String test(String name, Integer age) { return null; } public static String printMethods() { StringBuilder sb = new StringBuilder(); for (Method m : TestGetMethodParamName.class.getDeclaredMethods()) { sb.append(m.getReturnType().getSimpleName()); sb.append(" ").append(m.getName()); sb.append("("); String paramString = Stream.of(m.getParameters()) .map(p -> p.getType().getSimpleName() + " " + p.getName()) .collect(Collectors.joining(", ")); sb.append(paramString); sb.append(")\n"); } return sb.toString(); } public static void main(String args[]) { String s = printMethods(); System.out.println(s); } }
执行结果:
void main(String[] arg0)
String test(String arg0, Integer arg1)
String lambda$0(Parameter arg0)
String printMethods()
设置下Eclipse
再次执行
void main(String[] args)
String test(String name, Integer age)
String lambda$0(Parameter p)
String printMethods()
用javac命令的时候增加 -parameters参数即可
-parameters 生成元数据以用于方法参数的反射
java com/cctv/website/core/common/extension/reflect/TestGetMethodParamName void main(String[] arg0) String test(String arg0, Integer arg1) String printMethods() String lambda$printMethods$0(Parameter arg0) localhost:java bao$ javac -parameters com/cctv/website/core/common/extension/reflect/TestGetMethodParamName2.java localhost:java bao$ java com/cctv/website/core/common/extension/reflect/TestGetMethodParamName2 void main(String[] args) String test(String nameInteger age) String printMethods()
注:IDEA的设置如下
preferences->
2. 使用Javassist或者ASM(Spring使用)
相关文章推荐
- Java 8中如何获取参数名称的方法示例
- Java如何获取方法参数中的名称
- 使用ASM获取java的构造函数参数名称和方法参数名称
- 使用Java8获取方法参数名称
- java反射获取方法名称,参数类型
- java获取方法的参数名称列表
- Spring 中 java 获取方法参数名称
- java反射获取方法参数名称
- java 通过反射获取方法参数列表名称
- 获取java方法中的参数名称
- Java获取函数参数名称的几种方法
- java8获取方法的参数名称
- java如何获取方法参数名
- java获取方法的参数名称
- java获取方法参数名称
- Java获取函数参数名称的另一种方法
- 如何通过JAVA获取键盘输入值几种方法介绍
- Java如何在方法中修改传入参数的值
- javassist:增强型的java反射工具,获取方法参数名
- Java 编程下通过反射获取一个类中的方法名和对应参数名