У меня есть простая маркерная аннотация для методов (аналогично первому примеру в пункте 35 в Эффективной Java (2-е изд.)):
/**
* Marker annotation for methods that are called from installer
* validation scripts etc.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface InstallerMethod {
}
Затем в данном пакете (скажем com.acme.installer
), который содержит несколько подпакетов, содержащих около 20 классов, я хотел бы найти все методы, которые аннотируются с ним. (Потому что я хотел бы сделать некоторые проверки относительно всех аннотированных методов в unit test.)
Что (если есть) - это самый простой способ сделать это? Предпочтительно без добавления новых сторонних библиотек или фреймворков.
Изменить: для уточнения, очевидно, method.isAnnotationPresent(InstallerMethod.class)
будет способ проверить, имеет ли метод аннотацию, но эта проблема включает в себя поиск всех методов.