Я не уверен, что вы хотите сделать:
- В работающем подключаемом модуле Eclipse показать все классы, работающие в JVM с подключаемым модулем (т.е. классы для других редакторов, представлений, механизмов Eclipse)?
- В работающем плагине Eclipse показать все классы, создаваемые в открытых проектах Java в рабочей области? (Поскольку вы использовали слово «рабочее пространство», я подозреваю, что это то, что вы ищете.)
Обратите внимание, что в последнем случае вы не сможете получить реальные объекты Java Class<...>
, поскольку редактируемые и компилируемые проекты не загружаются для выполнения в ту же JVM, что и ваш плагин. Код вашего плагина будет выполняться вместе с кодом Eclipse IDE и Eclipse JDT; единственные классы времени в открытых проектах, которые будут загружены для выполнения (где-то создаются объекты Class<...>
), будут при запуске или отладке одного из этих проектов. , , в этом случае вы имеете дело с совершенно новой JVM, и ваш плагин больше не существует. Имеет ли это смысл?
Если я правильно вас читаю, думаю, вы, вероятно, захотите найти "единицы компиляции", а не "файлы классов". «Единицы компиляции» соответствуют исходным файлам .java
, а «файлы классов» соответствуют предварительно созданным двоичным файлам классов (часто в JAR-файлах). Или, может быть, вам нужны оба. Более того, звучит так, будто вы действительно хотите, чтобы это были «типы» внутри них.
Обратитесь к Руководству по ядру JDT для получения довольно хорошей информации, которую удивительно трудно найти. Обратите внимание, что некоторый анализ возможен на уровне модели Java, но более детальный анализ (например, поиск «внутренних» определений методов) потребует анализа частей кода в AST и перехода оттуда. Модель Java довольно удобна в использовании, но материал AST может показаться немного сложным в первый раз.
Также рассмотрите поисковую систему Java (описанную выше) и IType.newTypeHierarchy()
для поиска и навигации по типам.
Удачи!