2014-11-06 209 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