IntelliJ IDEA находит использование переопределяющего метода без поиска родственных методов - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть родительский класс P с подклассами A и B.

Я хотел бы найти все применения метода f из A.

То есть либо p.f(), либо a.f(), но не b.f(), потому что экземпляр B b не может вызвать A.f.

Я знаю, что могу найти

  • Звонит прямо на A.f. Это пропускает:

    P p = new A();
    p.f();
    
  • Звонки на P.f и любые переопределения. Это имеет слишком много ложных срабатываний.

Я знаю, что всегда будут ложные срабатывания, использующие только информацию времени компиляции, но их может быть меньше.

1 Ответ

0 голосов
/ 08 ноября 2018

Для этого вы можете использовать Структурный поиск (Редактировать | Найти | Поиск структурно ...). Используйте запрос как:

$x$.f()

с фильтром типов выражений A|P. Это найдет все вызовы f() в выражениях типа A или P. Если у вас есть еще классы в иерархии между A и P, вам также необходимо добавить их в фильтр типов выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...