gpt4 book ai didi

java - 查找不覆盖方法的类

转载 作者:行者123 更新时间:2023-12-01 00:37:05 25 4
gpt4 key购买 nike

IntelliJ IDEA 中是否有任何方法可以搜索不覆盖某个方法的类?

假设我有这些类(class):

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,我也需要查找类。 .在上面的例子中,这将是 ConcreteClassWithoutOverriddenMethodAnotherConcreteClassWithoutOverriddenMethod .

我知道如何使用类型层次结构来查找方法被覆盖的类,但还没有找到相反的方法。

我试过谷歌搜索它没有任何运气。此外,这是一个简化的示例。在实际代码中,我们有许多子类的实现,其中一些没有扩展类。

最佳答案

我找到了对此的支持。通过站在方法上并按 Ctrl + Shift + H(或菜单中的 Navigate -> Method Hierarchy),您可以很好地查看所有覆盖方法:

Method Hierarchy

在这里,我将所有四个类放在一个名为 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 {
}

}

关于java - 查找不覆盖方法的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40084084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com