2

これは私が試しているコードです:

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 では利用できないと書かれています。私を助けてください。

4

1 に答える 1

2

javac コンパイラ オプションを見てください。特に -g:vars。

これにより、デバッガーのローカル変数テーブルが埋められます。

同じ質問Java Reflection: How to get the name of a variable? を参照してください。

于 2012-07-02T22:15:15.950 に答える