IntelliJ IDEA中是否有任何方法可以搜索不会覆盖某种方法的类?
我们说我有这些课程:
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
的所有不覆盖methodThatMightBeOverridden()
的扩展名?请注意,我需要查找类,即使它们没有直接实现BaseClass
。在上面的示例中,这将是ConcreteClassWithoutOverriddenMethod
和AnotherConcreteClassWithoutOverriddenMethod
。
我知道如何使用类型层次结构来查找重写方法的类,但是却找不到相反的方法。
我试过谷歌搜索没有任何运气。此外,这是一个简化的例子。在实际代码中,我们有许多子类的实现,其中一些不扩展类。
答案 0 :(得分:2)
我找到了对此的支持。通过站在方法上并按 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 {
}
}
答案 1 :(得分:1)