2009-11-05 2 views
1

Я пытаюсь найти способ проверить мои классы для ссылок на методы с определенной аннотацией (подумайте «Устаревшие»).Как проверить ссылки аннотированных методов

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

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

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

ответ

2

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

+0

Подождите ... вы правы. Что заставило меня думать, что аннотации не компилируются в байтовый код? – Stroboskop

2

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

+0

Честно говоря я не могу вспомнить, что мне нужно это для. Но я верю, что построил его в нашем плагине Eclipse, и Eclipse проведет синтаксический анализ для меня. – Stroboskop

1

Использование Reflections библиотеки, это просто, как:

Reflections reflections = new Reflections("my.package", new MethodAnnotationsScanner()); 
Set<Method> deprecated = reflections.getMethodsAnnotatedWith(Deprecated.class); 
Смежные вопросы