静态代码分析Java

时间:2013-10-09 00:25:53

标签: java code-analysis static-analysis static-code-analysis

我想知道如何使用Java类中的特定变量。是否有任何静态代码分析工具可以帮助我追踪变量。

例如:

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

    }

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

在上面的示例中,如果我想跟踪变量“trackMe”。我应该通过工具通知我将trackMe传递给函数usedHere,也传递给B的构造函数,其中包含副本。

赞赏任何意见。

** * ** * * 编辑 < em> * ** * ** *
我不想运行代码或更改代码以实现此目的。所以我猜想没有一个IDE调试器无法完成任务。

2 个答案:

答案 0 :(得分:0)

大多数IDE都可以通过搜索来完成此操作。例如,在eclipse中,突出显示字段trackMe然后按control + H将打开Java搜索对话框。单击“搜索”将显示工作区中直接引用该字段的所有位置。

答案 1 :(得分: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;
  }
}

可能看起来有点费解,但毕竟信息有限:)