一尘不染

我可以使用Java反射获取有关局部变量的信息吗?

java

我需要知道局部变量的类型。我正在使用Java反射,但无法使用它。您能否让我知道如何知道局部变量的类型/名称。

我可以使用Java反射获取有关局部变量的信息吗?


阅读 674

收藏
2020-03-23

共1个答案

一尘不染

假设你在谈论方法或构造函数的局部变量,则无法使用反射来了解它们。你要么

  • 使用字节码库,例如BCEL或ASM,或
  • 使用远程调试器API之一。
    后者将允许你访问局部变量的值,但仅当JVM被调试代理挂起时才可以。

这两种方法都依赖于用调试信息编译的相关类。具体而言,需要使用“局部变量调试信息”来编译类。例如使用javac -g ...。默认情况下不包括“ vars”调试信息。

2020-03-23