1

Java クラスの特定の変数がどのように使用されているか知りたいです。変数を追跡するのに役立つ静的コード分析ツールはありますか。

例えば:

Class A {
     int trackMe;
     function usedHere(trackMe);
     B bobject = new B(trackMe); 
     ...

    }

Class B {
      B (int var) {
         copyOfTrackMe = var;
      }
    }

上記の例で、変数「trackMe」を追跡したい場合。ツールから、trackMe が関数 usedHere に渡され、コピーが作成される B のコンストラクターにも渡されることが通知されます。

どんな入力でも大歓迎です。

** * ** * *編集* ** * ** *
これを達成するためにコードを実行したり、コードを変更したりしたくありません。したがって、IDE デバッガーのどれも仕事を成し遂げることができないと思います。

4

2 に答える 2

0

ほとんどの IDE は、検索を介してこれを行うことができます。たとえば、Eclipse では、フィールドtrackMeを強調表示してから control+H を押すと、Java 検索ダイアログが表示されます。「検索」をクリックすると、そのフィールドが直接参照されているワークスペース内のすべての場所が表示されます。

于 2013-10-09T00:39:29.657 に答える
0

私はあなたのことを正しく理解していないかもしれませんが、これは奇妙に聞こえます。やりたい理由を言えば、より明確になるかもしれません。ただし、適切な IDE にある標準のデバッガーを使用したことがない場合は、それを試して、それが必要かどうかを確認してください。変数を見て、その内容がどのように変化しているかを確認できます。

ただし、これをコードで行いたい場合は、変数をオブジェクトにラップして、呼び出されるたびに次のような情報を出力する特別な getter メソッドを作成してみてください。

class MyVarWrapper {
  private int myVar;
  public void MyVarWrapper(int n) {
    myVar = n;
  }

  public int getMyVar(String info) {
    System.out.println(info);
    return myVar;
  }
}

少し複雑に見えるかもしれませんが、結局のところ情報は限られています :)

于 2013-10-09T00:53:33.910 に答える