我可以使用Java反射获取有关局部变量的信息吗?
问题描述:
我需要知道局部变量的类型。我正在使用Java反射,但无法使用它。您能否让我知道如何知道局部变量的类型/名称。
我可以使用Java反射获取有关局部变量的信息吗?
第 1 个答案:
假设你在谈论方法或构造函数的局部变量,则无法使用反射来了解它们。你要么
- 使用字节码库,例如BCEL或ASM,或
- 使用远程调试器API之一。
后者将允许你访问局部变量的值,但仅当JVM被调试代理挂起时才可以。
这两种方法都依赖于用调试信息编译的相关类。具体而言,需要使用“局部变量调试信息”来编译类。例如使用javac -g ...
。默认情况下不包括“ vars”调试信息。
示例代码:int width = 5;int area = 8;int potato = 2;int stackOverflow = -4;现在,说我想让用户输入一个字符串:String input = n ...