Как найти все употребления name (), относящиеся к конкретному типу enum - PullRequest
0 голосов
/ 01 октября 2018

Мне нужно найти все методы name(), вызываемые для определенного типа перечисления.

Допустим, у меня есть перечисление:

enum MyEnum {
    A, B, C;
}

Я хочу получить все местагде метод вызывается для любого элемента MyEnum.Его можно вызывать для определенных элементов, таких как A.name(), B.name() и т. Д., Но также его можно вызывать для параметра или итерируемой переменной, например:

String myMethod(MyEnum myEnum) {
    return myEnum.name();
}

Пока я могСделайте это, нажав Alt + F7 на каждом элементе MyEnum и самом типе enum, а затем ищите вхождения, содержащие name() call в результатах.Но это требует много ручной работы.

Другой подход, который я пробовал, состоял в том, чтобы нажать Alt + F7 с указателем на имя метода в выражении типа A.name(), но он обнаружил все случаи name() вызывается любой тип перечисления.

Так можно ли сделать это проще и быстрее?

1 Ответ

0 голосов
/ 01 октября 2018

В структурном поиске («Правка»> «Найти»> «Поиск структурно ...») найдите:

$e$.name()

, затем нажмите «Редактировать переменные ...», выберите e и установите «Выражение»type (regexp) ", чтобы быть интересующим вас перечислением.

(Помните, что любая ссылка типа Enum<?> может содержать ссылку на MyEnum, поэтому вам может потребоваться поискать и эти)

...