Подтвердить что ты не робот

Intellij idea: как найти все создание экземпляра класса

abstract class Base {}

class A extends Base
class B extends Base

Как найти все места в коде, которые создают Base? (то есть иметь либо новый A(), либо новый B())

ОБНОВЛЕНИЕ: чтобы это было ясно, приведенное выше справедливо и пример. Меня интересует способ поиска объектов любого класса, в том числе сторонних классов, которые я не контролирую.

4b9b3361

Ответ 1

Использование структурного поиска (Edit → Find → Поиск структурно или Ctrl + Shift + S):

  • Создать шаблон: new $Type$($P$)
  • Изменить тип переменной: введите Base в текстовое поле, установите флажок "Применить ограничение в иерархии типов", установите флажок "Эта переменная является объектом поиска"
  • Изменить переменную P: введите. * в текстовое поле, установите Minimum count to 0, установите флажок Unlimited under Maximum count.

Voila!

Ответ 2

IttayD, если я правильно понял ваше последнее обновление, что я обычно делаю (IntelliJ 9.0.4), если у меня есть аналогичная потребность для вас, щелкните правой кнопкой мыши по имени класса и сделайте "Поиск использования", и это приведет к отображению результатов в форма использования категорий,

  • Объявление переменной
  • Создание нового экземпляра, чтобы назвать несколько.

Насколько мне известно, я не думаю, что существует определенная опция/выбор, чтобы выполнить такую ​​проверку поиска использования. Благодаря

enter image description here

Ответ 3

Вы можете создать пустой конструктор по умолчанию Base и нажать Ctrl+Alt+H (Hierarchy Callers). Затем вы увидите все творения A и B в виде дерева.