java - 在 Intellij IDEA 中,查找实现接口(interface)但不扩展另一个类的类

标签 java intellij-idea structural-search

在 Intellij IDEA 中使用结构搜索,如果我想查找所有实现接口(interface)但不扩展另一个类的类,搜索模板应该如何?模板分别为:

class $Class$ implements $Interface$ {}

class $Class$ extends $Parent$ {}

分别设置最小值和最大值 1,1 和 0,0。

我尝试了与此问题类似的方法,但没有成功:

IntelliJ Structural Search to find classes that implement A but not B

最佳答案

您可以组合这两个模板:

class $Class$ extends $Parent$ implements $Interface$ {}

具有以下变量设置

$Parent$:
Text/regexp 排除并启用在类型层次结构中应用约束,最小/最大0,0
$Interface$:
Text/regexp 包含并启用在类型层次结构中应用约束,最小/最大1,1

当我在以下测试代码中使用这些设置进行搜索时,找到了 BE 类。

class Excluded {}
interface Included {}
class A extends Excluded implements Included {}
class B implements Included {}
class C extends Excluded {}
class D extends A {}
class E extends B {}
class F {}

您当然需要使用自己的类和接口(interface)名称,而不是“包含”和“排除”。

关于java - 在 Intellij IDEA 中,查找实现接口(interface)但不扩展另一个类的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45772844/

相关文章:

android-studio - 使用 Mac 将鼠标悬停在 Android Studio 中的 WORD 上时复制警告消息

java - 在 IntelliJ IDEA 中运行单类 Java 控制台应用程序?

java - 如何在 IDEA 中创建结构替换以向类添加缺少的注释

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

java - Jmeter测试使用maven运行

java - JAX-RS - 两个类是否可以具有相同的@Path 标识符?

java - checkstyle getSQLTypeName

java - JVM按顺序启动线程的run()方法的保证是什么

java - Maven,包不存在

visual-studio - 有没有办法在 Resharper 中使用注释禁用自定义模式