在 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
当我在以下测试代码中使用这些设置进行搜索时,找到了 B
和 E
类。
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/