2014-11-06 211 views
1

有沒有辦法在IntelliJ Idea中篩選層次結構子類型?IntelliJ IDEA篩選器層次結構子類

例如,我想爲java.util.Map.Entry<K, V>生成類層次結構,但只想顯示位於java.*包中的公共類和類。

Eclipse似乎不支持這一點,我看不到直接從IDE UI執行此操作的一種方法,所以有沒有辦法在IDEA本身內實現這一點或者腳本呢?

編輯:爲了澄清事情,我想找到在JDK中是否已經有一個簡單的公共實現Entry<K, V>,這樣我就不需要編寫自己的crufty代碼。

原來有兩個很好的候選人(SimpleEntry<K, V>SimpleImmutableEntry<K, V>,對於那些誰可能有興趣),但我只是設法找到他們經過一番艱苦的通過Entry<K, V>在我的類路徑中的無數實施篩選(見here)。

我想要的是根據包名稱和訪問修飾符過濾這種深層次的層次結構。

回答

1

我不知道什麼是你究竟想達到的,因爲你在談論「生成的類層次結構」,然後你在談論「顯示只是公共物品」。

我假定,您希望導航到Hirarchy工具窗口(通過按CTRL-H上選擇的類型)和過濾器的結果,因此,只有從期望的包裝(java.*)類型將被顯示。

爲了達到這個目的,在工具欄上的「層次結構工具」窗口中有一個「Scope」組合框。點擊它並選擇「Configure...」。將出現「Scopes」窗口,您可以在其中添加和配置新的自定義作用域,以便爲您過濾所需的類型。

enter image description here

編輯: 我不能scope languge syntax reference發現用於過濾基於訪問修飾符的任何選項。

但我用google搜索了一下,我想你可能在尋找Structural SearchCTRL + SHIFT + S)。你也可以在這裏使用 「作用域」 像上面描述的,並且也使用訪問修飾符是這樣的:

公共類$ DerivedClass $實現入境{}

私有類$ DerivedClass $ implements Entry {}

我沒有用太多,但它可能是一個非常強大的工具,並會幫助你取得比Hirarchy Tool Window更好的結果。

參考:hereherehere

+0

謝謝,我澄清了最初的問題。你的答案非常接近我所需要的,這足以接受它。還有一個額外的好處 - 是否有辦法通過訪問修飾符進一步過濾範圍層次結構?我找不到這樣做的選擇。 – quantum 2014-11-07 15:58:56

+0

我已經更新了我的答案,也許結構搜索是你正在尋找的。 – 2014-11-07 22:14:32