我需要在运行时获取方法的参数名称.有没有办法实现这个目标?
我尝试使用LocalVariableTableParameterNameDiscoverer
哪个是Spring类.但它只适用于类而不是接口.
获取参数名称的唯一方法是使用-g:vars
选项编译源代码。这会LocalVariableTable
在类文件中生成一个属性。为了优化,通常会删除它。
例如:(取自这里)
public class Example {
public int plus(int a){
int b = 1;
return a + b;
}
}
Run Code Online (Sandbox Code Playgroud)
这将创建一个LocalVariableTable
如下
局部变量表:
Start Length Slot Name Signature
0 6 0 this LExample;
0 6 1 a I
2 4 2 b I
Run Code Online (Sandbox Code Playgroud)
可以使用任何字节码工具库(如ASM或Javassist )LocalVariableTable
读取。
归档时间: |
|
查看次数: |
876 次 |
最近记录: |