2013-10-09 178 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

我不想運行代碼或更改代碼。我相信我需要運行代碼才能嘗試你所說的話。 –