【问题标题】:Getting name and type of local variables from a Java program从 Java 程序中获取局部变量的名称和类型
【发布时间】:2012-07-02 12:41:06
【问题描述】:

这是我正在尝试的代码:

JavaCompiler compilerA = ToolProvider.getSystemJavaCompiler();
int resultA = compilerA.run(null,null,null,"/Users/a/Documents/Java/a.java");
System.out.println("Compile result code = " + resultA);
File fileA = new File("/Users/a/Documents/Java/a.class");

JavaCompiler compilerB = ToolProvider.getSystemJavaCompiler();
int resultB = compilerB.run(null,null,null,"/Users/a/Documents/Java/b.java");
System.out.println("Compile result code = " + resultB);
File fileB = new File("/Users/a/Documents/Java/b.class");

这里我正在编译一个Java类,然后使用反射来获取所有的函数名、参数和返回类型。但是,我不知道如何获取函数局部变量的名称和返回类型。我尝试查找字节码大纲,但它说它不适用于 netbeans。请帮帮我。

【问题讨论】:

  • 无法通过 Java 反射获取局部变量的名称。见stackoverflow.com/questions/744226/…
  • 我知道我无法使用 Java 反射来获取它们。但是我不能用其他方式得到它们吗?

标签: java reflection bytecode


【解决方案1】:

查看javac compiler options。特别是 -g:vars。

这会填充调试器的局部变量表。

查看相同的问题Java Reflection: How to get the name of a variable?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多