参数名的获取
我们通过Java提供的反射机制获取函数参数名,这里简单举例有ManService,定义如下:
public class ManService {
public void test(String hello,int age){
System.out.println("test");
}
}
Main方法:
public static void main( String[] args ) throws NoSuchMethodException {
Method method = ManService.class.getDeclaredMethod("test",String.class,int.class);
Parameter[] parameters = method.getParameters();
for(Parameter parameter:parameters){
System.out.println(parameter.getName());
}
}
输出结果:
arg0
arg1
之所以会出现这种结果,默认情况下javac编译器不会生成元数据,可以给javac指定-parameters参数,重新编译,可以获取正确的参数名。
-parameters参数的配置
- maven项目配置
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
重点关注<arg>-parameters</arg>这段,配置完后,再执行clean ,compile指令
- Idea中配置
在Settings中打开Java Compiler菜单页面,在javac Options 中的Additional command line parameters中添加-parameters,保存然后清理历史class,重新编译即可。