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

时间:2017-08-19 14:43:20

标签: java intellij-idea structural-search

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

class $Class$ implements $Interface$ {}

class $Class$ extends $Parent$ {}

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

我尝试了类似这个问题但没有成功:

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

1 个答案:

答案 0 :(得分:2)

您可以将两个模板组合在一起:

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

使用以下变量设置

$Parent$
正文/正则表达式Excluded并启用Apply constrains in type hierarchy,最小/最大0,0
$Interface$
正文/正则表达式Included并启用Apply constrains in type hierarchy,最小/最大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 {}

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