Intellij Structural Search для типа параметра и фактического типа

Представьте, что я хочу найти все методы с любым количеством параметров, которые принимают как один из них Collection, но вызываются путем передачи списка. Пример:

  • недействительный тест1 (коллекция х)
  • недействительный тест2 (A a, коллекция x)
  • void test3(Коллекция x, B b)
  • void test4 (список x, B b)

и я имею:

  • test1(myList) # совпадения
  • test1(aCollection) # НЕТ совпадений
  • test2(xxx, myList) # совпадений
  • test3(myList, xxx) # соответствует
  • test4(myList, xxx) # Не соответствует, так как я ищу вызовы методов, которые получают коллекцию, и мы передаем список.

Есть ли способ использовать структурный поиск для этого?


person Mikel    schedule 13.03.2014    source источник


Ответы (1)


Если вы хотите найти вызовы методов, а не сами методы, вы можете использовать следующий шаблон поиска:

$call$($a$, $argument$, $b$)

Со следующими переменными ограничениями:

a, b

  • Минимальное количество: 0
  • Максимальное количество: неограниченно

аргумент

  • Text/RegExp для типа выражения Java: Список
  • Text/RegExp для формального типа аргумента метода: Коллекция
person Bas Leijdekkers    schedule 28.10.2014