Поиск членов типа T (или функций, которые возвращают тип T) рекурсивно в IntelliJ IDEA Ultimate 2019 - PullRequest
0 голосов
/ 23 сентября 2019

Я ищу способ узнать, имеет ли тип, скажем, DataContainer, элемент (или даже возвращаемое значение) некоторого типа Type.Я ищу способ проверить, есть ли у DataContainer или любого из членов DataContainer член типа Type.Я хочу сделать это рекурсивно.

Простой поиск всех значений Type невозможен, так как могут быть буквально тысячи совпадений.(Это большая старая кодовая база, срок рефакторинга которой составляет около 10 лет, что, вероятно, никогда не произойдет).

Ограничение области действия при поиске пользователей Type будет работать в некоторых случаях (не все), но может быть очень медленным.

class Sub1 {
  Type type;
}
class WrongContainer {
  int foo;
}
class CorrectContainer {
  Type type;
  Sub1 sub1;
}

В этом случае я ожидаю, что мне скажут, что у CorrectContainer есть два способа получить Type;прямой доступ к объекту или доступ через sub1.

Я бы предпочел инструмент поиска в IntelliJ IDEA, но на самом деле открыт для любых предложений.Я мог бы (но предпочел бы не) решить эту проблему с помощью некоторого отражения.

...