Java 查找不重写方法的类
IntelliJ IDEA中是否有任何方法可以搜索不重写某个方法的类 假设我有这些课程:Java 查找不重写方法的类,java,intellij-idea,Java,Intellij Idea,IntelliJ IDEA中是否有任何方法可以搜索不重写某个方法的类 假设我有这些课程: public abstract class BaseClass { public void methodThatMightBeOverridden() { } } public class ConcreteClassWithOverriddenMethod extends BaseClass { @Override public void methodThatMightBeOverridd
public abstract class BaseClass {
public void methodThatMightBeOverridden() {
}
}
public class ConcreteClassWithOverriddenMethod extends BaseClass {
@Override
public void methodThatMightBeOverridden() {
super.methodThatMightBeOverridden();
}
}
public class ConcreteClassWithoutOverriddenMethod extends BaseClass {
}
public class AnotherConcreteClassWithoutOverriddenMethod extends ConcreteClassWithoutOverriddenMethod {
}
在IntelliJ中是否可以找到未覆盖可能被覆盖()的方法的基类的所有扩展名?注意,我需要查找类,即使它们不直接实现BaseClass
。在上面的示例中,这将是concreteclasswithoutoverridedmethod
和另一个concreteclasswithoutoverridedmethod
我知道如何使用类型层次结构查找方法被重写的类,但还没有找到另一种方法
我曾尝试在谷歌上搜索,但没有任何运气。此外,这是一个简化的示例。在实际代码中,我们有许多子类的实现,其中一些没有扩展该类。您可以使用结构化搜索。使用如下搜索模板:
class $A$ extends $B$ {
void $m$();
}
其中,在编辑变量下变量m
具有可能被覆盖的text/regexp方法和0的最小+最大出现次数计数。变量B
具有text/regexp基类
,并且启用了类型层次结构中的应用约束
复选框。我找到了对此的支持。通过站在方法上并按Ctrl+Shift+H(或在菜单中导航->方法层次结构),您可以很好地查看所有重写方法:
在这里,我将所有四个类都放在一个名为Test
的类中,如下所示,因此在类名后面有“in-Test”文本。这幅图是非常自解释的,但是减号意味着类不会重写该方法
package test;
public class Test {
public abstract class BaseClass {
public void methodThatMightBeOverridden() {
}
}
public class ConcreteClassWithOverriddenMethod extends BaseClass {
@Override
public void methodThatMightBeOverridden() {
super.methodThatMightBeOverridden();
}
}
public class ConcreteClassWithoutOverriddenMethod extends BaseClass {
}
public class AnotherConcreteClassWithoutOverriddenMethod extends ConcreteClassWithoutOverriddenMethod {
}
}
你的解决方案有效。然而,我的示例类被简化了,真正的类是泛型的。我想也可以扩展结构搜索以允许泛型。