Как проверить ссылки на аннотированные методы

Я пытаюсь найти способ проверить мои классы на наличие ссылок на методы с определенной аннотацией (например, "Устаревший").

Насколько я понимаю, анализ байт-кода не будет работать, потому что он не содержит никаких аннотаций.
Использование APT не очень помогает, потому что мне нужны ссылки на методы, а не сами аннотированные методы.

Итак, какие у меня есть варианты?

Лучшее, что я могу придумать, - это составить список аннотированных методов с последующим полным анализом кода, проверяя каждый вызов метода по списку.
Есть ли способ сделать это эффективно в плагине Eclipse или Ant?

3 ответа

Решение

Анализ байт-кода будет работать! Например, ASM хорошо обрабатывает аннотации.

В другом вопросе я попросил парсер Java языка Java. Для анализа кода я использую этот. Возможно, это тоже хорошо для тебя.

Используя библиотеку Reflections, это просто:

Reflections reflections = new Reflections("my.package", new MethodAnnotationsScanner());
Set<Method> deprecated = reflections.getMethodsAnnotatedWith(Deprecated.class);
Другие вопросы по тегам