Spring之方法参数名称
方式一
通过Spring中类 LocalVariableTableParameterNameDiscoverer 获取方法参数名称
案例如下:
public class TestReflect {
public static void main(String[] args) {
Method[] declaredMethods = TestReflect.class.getDeclaredMethods();
LocalVariableTableParameterNameDiscoverer discoverer =
new LocalVariableTableParameterNameDiscoverer();
for (Method method : declaredMethods) {
String[] parameterNames = discoverer.getParameterNames(method);
System.out.println(Arrays.toString(parameterNames));
}
}
public void test(String abc) {
System.out.println(abc);
}
}
执行结果如下:
方式二
通过Java8的方式获取方法参数名称 指定命令行参数,Java8默认不开启,通过参数 -parameters开启编译命令
通过maven插件添加编译命令参数开启
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
使用main方法无法进行测试
通过SpringBoot项目测试
@GetMapping("/test5")
public String test5(String abc) throws NoSuchMethodException {
Method method = this.getClass().getDeclaredMethod("test5", String.class);
Parameter[] parameters = method.getParameters();
System.out.println(Arrays.toString(parameters));
return "success";
}
执行结果如下: 以上就是获取方法中的参数名称的两种方式…
|