Как: Найти все ссылки на поле в Java - PullRequest
0 голосов
/ 02 октября 2009

Допустим, у меня есть следующие классы:

class A {
  static public String a;
}

class B {
  public function referToFieldInClassA() {
    System.out.println(A.a);
  }
}

Есть ли в API отражения Java что-нибудь, что позволило бы мне найти все места, на которые ссылается определенное поле? То, что я ищу, это способ выяснить, что (учитывая пример) класс B имеет ссылку на A.a.

Я знаю, что могу получить все поля в классе с помощью API отражения. Но теперь я хочу найти все ссылки на это поле.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 октября 2009

Я думаю, что из стандартных API ответ будет отрицательным. Eclipse может это сделать, но это не во время выполнения.

Для невероятно хакерского способа сделать это, получить объект ClassLoader, получить resourceAsStream, чтобы получить что-то, использовать что-то вроде JODE , чтобы декомпилировать это, и проанализировать источник изнутри программы.

Но это сумасшедший объем работы. Какого черта ты это используешь?

1 голос
/ 02 октября 2009

Если вам нужно время компиляции, а не времени выполнения, и у вас нет IDE, очень старый трюк - изменение имен полей и перекомпиляция, а также поиск того, что не компилируется. ;]

Тогда, конечно, получите себе IDE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...