我需要在运行时获取方法的参数名称。有没有办法实现这个目标?
我尝试使用LocalVariableTableParameterNameDiscoverer
这是一个Spring类。但它只适用于类而不适用于接口。
答案 0 :(得分:2)
获取参数名称的唯一方法是使用-g:vars
选项编译源代码。这会在类文件中生成LocalVariableTable
属性。通常会将其删除以进行优化。
例如:(taken from here)
public class Example {
public int plus(int a){
int b = 1;
return a + b;
}
}
这将创建一个LocalVariableTable
,如下所示
LocalVariableTable:
Start Length Slot Name Signature
0 6 0 this LExample;
0 6 1 a I
2 4 2 b I