我需要知道局部变量的类型.我正在使用Java反射,使用它我无法得到它.能告诉我如何知道局部变量的类型/名称吗?
我可以使用Java反射获取有关局部变量的信息吗?
Ste*_*n C 16
假设您正在讨论方法或构造函数的局部变量,您无法使用反射找到它们.你必须要么
后者将允许您访问局部变量的值,但仅在JVM被调试代理挂起时.
这两种方法都依赖于使用调试信息编译的有问题的类.具体来说,需要使用"局部变量调试信息"编译类; 例如使用javac -g ...
.默认情况下不包括"vars"调试信息.
总之,你做不到.编译器不保留局部变量的名称.
作为一个快速实验,我使用Java 6和默认编译器选项编译了以下类:
public class X {
public static void main(String[] args) {
int var = 2;
System.out.println(var);
}
}
Run Code Online (Sandbox Code Playgroud)
快速检查生成的.class
文件会发现局部变量(var
)的名称没有出现在那里.
归档时间: |
|
查看次数: |
13366 次 |
最近记录: |