2011-01-10 38 views
6

如果我在Eclipse中有一個Java項目,我可以右鍵單擊一個方法名稱和「打開調用層次結構」。假設我有兩個接口A和B,它們都指定了一個方法x()。我是否可以讓Eclipse以更智能的方式使用「Open Call Hierarchy」,以便只顯示來自A的x()的調用,而不顯示來自B的調用?更智能的Eclipse「Open Call Hierarchy」?

回答

6

Eclipse應該已經這樣做了。如果要測試它,請轉到您的接口,選擇x()方法並在其上運行「打開調用層次結構」。請在Bx()方法中做相同的操作。你應該得到不同的代碼位置,除非你有一個實現兩者的類,你永遠不應該這樣做。這樣做不會破壞任何編譯或執行,只會重複聲明相同的方法簽名。

+0

現在我開始迷惑自己。當我真正嘗試過這個虛擬示例時,它的行爲就像你所解釋的那樣,但是我的真實例子更復雜的層次結構*似乎受到我描述的現象的影響。 – 2011-01-10 19:19:13

3

我已經嘗試過用頻繁重寫的方法toString()。當我右鍵單擊它並選擇「打開調用層次結構」時,Eclipse高興地搜索整個工作空間並返回對該方法簽名的所有引用。

我經常依靠Eclipse來走相反的路:我選擇一個方法調用並按F3打開聲明。但我不認爲Eclipse能夠走向你想要的方向,從聲明到調用參考。

2

它可能有助於從搜索結果中刪除「潛在匹配」。試試這個:

Preferences -> General -> Search

並勾選 「忽略潛在的匹配」。