IntelliJ IDEA在不查找同级方法的情况下找到覆盖方法的用法

时间:2018-11-07 09:23:01

标签: inheritance intellij-idea ide refactoring

我有一个父类P和子类AB

我想找到f中方法A的所有用法。

因此p.f()a.f()而不是b.f(),因为实例B b无法调用A.f

我知道我能找到

  • 直接调用A.f。这错过了:

    P p = new A();
    p.f();
    
  • 调用P.f和任何替代。这有太多误报。

我知道仅使用编译时信息总会出现误报,但可能会更少。

1 个答案:

答案 0 :(得分:1)

您可以为此使用结构搜索(编辑|查找|结构搜索...)。使用类似这样的查询:

$x$.f()

具有表达式类型过滤器A|P。这将在f()A类型的表达式上找到对P的所有调用。如果您在AP之间的层次结构中还有其他类,则还需要将它们添加到表达式类型过滤器中。