-1

クラスファイルを読み取るプログラムを作成しようとしています。たとえば、変数を指定する場合、次の例では「i」を指定します。

public class Example {
  public static void main( String[] args) {

    int i = 1;
    int j = 5;
    int k = 2; 

    i = i + k;

    System.out.println(i);
  }
}

その後、私のプログラムは戻ります

 int i = 1;
 int k = 2; 

 i = i + k;
 System.out.println(i);

これらは i に影響を与える変数であるためです。

これを行う方法がわかりません。これまでのところ、ファイルを取り込み、ビジター パターンを使用してすべての VariableDeclarationExpr を検索する javaparser を使用してみました。ただし、これは上記のコードの下の 2 つのケースを出力しません。

誰かがそれらを見つける方法のヒントを教えてもらえますか?

4

1 に答える 1

0

VariableDeclarationExpr は宣言のみを表します (あなたの場合の int i = 1; のように)。ただし、コード内の他の 2 つのステートメントは宣言ではありません。それらは割り当て (おそらく AssignmentExpr) とメソッド呼び出し (おそらく MethodCallExpr) です。そのため、最初に変数 i が出現する場所を考えてから、すべてのケースを個別にカバーします。それが役立つことを願っています

于 2014-11-05T12:31:31.007 に答える