Что вам нужно, так это все машины разрешения имен и типов.Как заметил другой автор, один из способов добиться этого - злоупотребить компилятором Java.
Но, скорее всего, у вас есть другая цель, помимо компиляции java;как только у вас есть эти имена, вы хотите сделать что-то с ними.Компилятор Java вряд ли вам здесь поможет.
То, что вам действительно нужно, - это основа для создания инструмента, который обрабатывает язык Java, включая разрешение имен и типов, который поможет вам выполнить остальную часть вашей задачи.
Наш инструментарий реинжиниринга программного обеспечения DMS представляет собой обобщенный механизм анализа и преобразования программ.Он анализирует код, создает AST, управляет таблицами символов, предоставляет общие механизмы анализа потоков, поддерживает модификацию (или конструкцию) AST как процедурно, так и с точки зрения шаблонов поверхностного синтаксиса, включая (повторное) создание скомпилированного текста из AST, включая любые комментарии.1011 *
DMS имеет интерфейс Java , который позволяет DMS обрабатывать Java, создавать AST-файлы Java, выполнять все те разрешения имен и типов, которые вы хотите.Да, это большой механизм, эквивалентный тому, что есть у компилятора Java, прочитайте ваше последнее справочное руководство по Java.Вы можете создать любой пользовательский инструмент, который вам нужен, на основе этого фундамента.
Что вы не сможете сделать, так как на практике это полное, точное разрешение имени и типа без остальной части исходных файлов Java (или соответствующие файлы классов), независимо от того, как вы решите это.Возможно, вам удастся сделать какое-то эвристическое предположение, но это все, что было бы.