IntelliJ IDEA: как найти все экземпляры создания класса? - PullRequest
13 голосов
/ 28 марта 2012
abstract class Base {}

class A extends Base
class B extends Base

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

UPDATE
Чтобы было понятно, вышесказанное как раз и пример. Мне интересен способ поиска объектов любого класса, включая сторонние классы, которые я не контролирую.

Ответы [ 3 ]

15 голосов
/ 11 апреля 2012

Использование поиска по структуре (Правка -> Найти -> Поиск по структуре или Ctrl + Shift + S):

  • Создание шаблона: new $Type$($P$)
  • Изменить тип переменной: типВ текстовом поле установите флажок «Применить ограничение в иерархии типов», установите флажок «Эта переменная является целью поиска»
  • Изменить переменную P: type. * В текстовом поле, установите для параметра Минимальное количество значение 0, проверьтеНе ограничено Максимальным количеством.

Вуаля!

5 голосов
/ 30 марта 2012

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

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

Насколько я знаю, я не думаю, что есть конкретный вариант / выбор выбора для выполнения такой проверки поиска использования.Спасибо

enter image description here

0 голосов
/ 28 марта 2012

Вы можете создать пустой конструктор по умолчанию для Base и нажать Ctrl + Alt + H (Вызовы иерархии). Тогда вы увидите все творения А и Б в виде дерева.

...