2011-09-12 25 views
67

我有一個應用程序作爲與許多依賴關係的JAR文件。出於某種原因,我需要反編譯一個庫並用Eclipse打開它。對於項目中的給定接口,是否有找到實現它的類的方法?可能是接口在其他庫中實現的情況下,我還沒有反編譯。這種類可以做到這一點嗎?如何找到哪些類在Eclipse中實現特定的接口?

回答

90

右鍵單擊界面,然後選擇「打開類型層次結構」。然後點擊「顯示子類型層次結構」。

+0

它沒有顯示任何東西,當我點擊「顯示子類型層次結構」時,我只看到了Interface而不是實現它的類。 – Am1rr3zA

+0

然後這意味着項目的Java Build Path中沒有任何類實現此接口。 Eclipse當然必須知道潛在的類:包含它們的jar文件必須位於項目的Java Build Path中。 –

+0

你的意思是我必須將其他jar文件添加到Java構建路徑? – Am1rr3zA

37

嘗試Ctrl + T選擇類名後;應該在Java Perspective中工作。

+2

最佳答案!它應該被標記爲他正確的一個。 –

10

您可以在項目上顯示「類型層次結構」(右鍵單擊以選擇此選項或在項目高亮顯示時按F4)*。

但是,這將僅列出所引用項目中的項目(「依賴」)。不在其他人。

所以,如果你已經反編譯了一個jar,並且還有另一個你沒有反編譯的jar,那麼該jar中的實現(接口)將不會被列出。另外,假設你已經將一個jar作爲一個項目進行了反編譯,並且還有另外一個引用該jar的項目,而不是反編譯的項目,那麼它的實現也將不會被列出。

所以你必須反編譯所有的jar文件並將它們添加爲項目(並通過「Java Build Path」添加引用),以確保列出了所選jar包中的所有實現。

*快速類型層次,CTRL + Ť將顯示在工具提示/自動完成一種面板的類似的結構。但是完整的類型層次結構對於您打算執行的分析類型更有用。

1

或右鍵單擊並選擇Quick Type Hierarchy以獲得擴展接口和實現類的下拉菜單。

+0

當我用右鍵單擊並選擇快速類型層次結構時,我只是看到接口不是實現它的類 – Am1rr3zA

7

在Java搜索中有放射按鈕「Implementors」。

+3

它如何不回答問題?打開Java搜索,輸入接口名稱,單擊「實現者」,您將「找到哪些類實現特定的接口」。 – stackexchanger

0

Ctrl + H(搜索選項)打開Java搜索透視圖並輸入接口名稱,單擊Implementors單選按鈕,您會發現哪些類實現了特定的接口。與上面stackexchanger的回答相同

+0

這些答案不總是以相同的順序... –

相關問題