如何在IntelliJ社区版中识别实现Action但不继承AbstractAction的类?
在IntelliJ(社区版)中筛选「实现Action接口但未继承AbstractAction」的类
当然可以搞定!IntelliJ IDEA(包括免费的社区版)的**结构搜索(Structural Search)**功能正好能满足这种精准的组合筛选需求,下面是一步步的操作指南:
步骤1:打开结构搜索面板
你可以用快捷键快速唤起:
- Windows/Linux:按
Ctrl+Shift+A - Mac:按
Cmd+Shift+A
在弹出的搜索框里输入「Structural Search」,选中对应的选项打开面板。也可以通过菜单栏路径:Edit > Find > Search Structurally打开。
步骤2:创建自定义类搜索模板
- 点击面板左上角的「+」按钮,选择「New Template」,然后选「Class」作为模板类型。
- 在模板编辑区输入以下代码,用来匹配实现Action接口的类:
class $Class$ implements Action { }
步骤3:添加「不继承AbstractAction」的过滤规则
- 选中模板里的
$Class$变量(就是那个带美元符号的占位符),点击面板下方的「Edit Variables」按钮。 - 在弹出的变量设置窗口中:
- 找到「Extends」选项,点击右侧的「...」按钮,输入
!AbstractAction(感叹号代表「排除」),表示这个类不能继承AbstractAction。 - 确认「Implementing」选项设置为
Action,确保类必须实现该接口。 - 可以勾选「Apply constraints in hierarchy」,让搜索覆盖项目里的所有类层次。
- 找到「Extends」选项,点击右侧的「...」按钮,输入
- 点击「OK」保存变量设置。
步骤4:执行搜索并查看结果
点击面板右下角的「Find」按钮,IntelliJ就会扫描整个项目,把所有符合「实现Action接口但未继承AbstractAction」条件的类列出来。
额外小技巧
- 如果以后经常需要这个搜索,可以点击面板左上角的「保存」按钮,给模板起个名字(比如「ActionImplWithoutAbstract」),下次直接调用就行。
- 要是搜索结果太杂,还能在变量设置里添加更多过滤条件,比如限定类的访问修饰符、所在包路径等。
内容的提问来源于stack exchange,提问作者GhostCat
相关产品推荐
相关产品推荐

