intellij-idea - IntelliJ 结构搜索以查找实现 A 但未实现 B 的类

标签 intellij-idea structural-search

我正在尝试使用 IntelliJ 10.5 的“结构搜索”功能来查找实现接口(interface) A 但不实现另一个接口(interface) B 的类。

通过首先搜索实现 A 的类,然后将搜索范围限制为“以前的搜索结果”,很容易将其简化为仅搜索未实现 B 的类,这在概念上非常简单。不幸的是,我还没有成功地完成它。

如果我搜索

class $clazz$ implements $B$ {}

然后在变量B的文本约束中勾选“反转条件”,它似乎找到了“所有实现B以外的东西的类”,即使它们也实现了B。我也试过在“完成”上勾选“反转条件” match' 变量,它的效果不是很明显,但绝对不是我想要的。

顺便问下a similar question在 IntelliJ 论坛上,但没有得到爱。帮帮我,stackoverflow!

最佳答案

为了找到实现 InterfaceA 但不实现 InterfaceB 的类,我执行了以下操作:

  • 搜索 > 结构搜索
  • 点击复制现有模板
  • 选择 接口(interface)的实现者(在层次结构内)并点击 好的
  • 点击编辑变量
  • 选择 接口(interface)变量 列表
  • 输入接口(interface)A 文本/正则表达式 并点击 好的
  • 点击查找
  • 搜索 > 结构搜索
  • 点击编辑变量
  • 选择 接口(interface)变量 列表
  • 输入接口(interface)B 文本/正则表达式 , 0 最小计数 0 最大计数 并点击 好的
  • 选择 以前的搜索结果 范围下拉
  • 点击查找

  • 注意我在尝试使用 时遇到了问题。编辑查询 按钮在第 8 步。我没有研究/重试,但返回菜单并选择“搜索”>“结构搜索”肯定有效。

    关于intellij-idea - IntelliJ 结构搜索以查找实现 A 但未实现 B 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254930/

    相关文章:

    intellij-idea - 为什么 Intellij IDEA 在保存时关闭文件然后复制另一个?

    spring-boot - Wildfly 中部署的 Spring Boot 应用程序 "Failed to instantiate WebApplicationInitializer class"

    java - 我如何在 Intellij 中搜索和替换结构

    android - gradle sync 在 intellij idea 13.1.1 上失败

    tomcat - IntelliJ Tomcat 控制台颜色输出

    html - IntelliJ 结构搜索查找自闭合 HTML 标签

    intellij-idea - 如何编写一个健壮的结构搜索模板来报告 Mockito times(1)/Times(1) 在 IntelliJ IDEA 中传递给验证?

    java - 通过 IDEA 结构化查找多次使用注释查找类

    Android Studio 3.1 无法解析符号(主题、小部件、属性等)

    intellij-idea - 有什么方法可以在 Intellij 中在结构上搜索 Scala 或 Python 源代码?