Стоит задача проанализировать файлы с расширением .java начиная с корневого пакета проекта и построить зависимости на основании используемых классов.
Нашел библиотеку JavaParser, но не нашел возможности в ней получить используемые классы.
Основной вопрос каким образом можно получить используемые классы?
Что я подразумеваю под "используемые классы" - это классы, которые создаются в методах, принимаются как параметры.
На данный момент реализовал следующий алгоритм:
1. Перебираю все файлы с корня проекта и создаю список объектов JavaFile, который содержит:
- пакет
- импорты
- объявленные классы
- название класса
Одновременно собираю в карту слова(ключи) которые встречаются в файле и список JavaFile (значение), в которых они встретились.
2. Перебираю полученный список JavaFile и ищу название класса в словах, если такое слово находится, получаю список JavaFile, исключаю текущий JavaFile если он присутствует в списке, смотрю чтоб был указан импорт этого пакета в файле или классы находились в одном пакете, в таком случае, считаю, что файл используется в таком то файле.
Пока алгоритм показывает неплохие результаты. Подводных камней не заметил (пока).
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делаю веб приложение на Java c использованием Spring MVC, Spring Security и HibernateКогда хочу добавить продукт меня дает такая ошибка
Подскажите пожалуйста, как Drawer (боковое меню) разместить над statusBar? На фото образец стороннего приложения того, что я хочу получитьЗа основу...
В корне проекта settingsgradle: