2013-10-09 139 views
1

我想知道如何使用Java类中的特定变量。是否有任何静态代码分析工具可以帮助我找出变量。静态代码分析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调试器都不会完成任务。

回答

0

大多数IDE都可以通过搜索来实现。例如,在eclipse中,突出显示字段trackMe,然后按下control + H将弹出Java搜索对话框。点击“搜索”将显示工作空间中直接引用该字段的所有位置。

+0

实际上,将做的是搜索该字符串。单击变量中的任意位置并预置control-shift-G将显示引用该变量的所有位置,并忽略它仅出现在注释中的任何位置,或者该字符串出现在某个其他变量中。 – arcy

+0

@rcook实际上,它与control + H“Java搜索”选项卡是一样的。这也是我所指的。 – dkatzel

+0

考虑添加屏幕截图。 –

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; 
    } 
} 

可能看起来有点复杂,但信息是有限的,毕竟:)

+0

我不想运行代码或更改代码。我相信我需要运行代码才能尝试你所说的话。 –