Я пытаюсь использовать Reflections API, но мне трудно вернуться к классам с помощью пользовательской аннотации.API отражения не возвращается Аннотированный класс
Я передаю список URL-адресов из каталога; переходя через код, он, кажется, находит класс, который имеет аннотацию.
URLClassLoader urlClassLoader = new URLClassLoader(plugins.toArray(new URL[plugins.size()]), null);
Reflections reflections = new Reflections(new ConfigurationBuilder()
.setUrls(ClasspathHelper.forClassLoader(urlClassLoader))
.setScanners(
new SubTypesScanner(false),
new TypeAnnotationsScanner()));
Но последний фрагмент кода, в котором мне нужен класс, содержащий аннотацию, всегда возвращается и пуст. Я делаю что-то явно неправильно?
classes = reflections.getTypesAnnotatedWith(Column.class, true);
Категория: Аннотации;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Column {
boolean load() default false;
Class loaderClass();
Class criteriaClass();
String indicator();
String columnName();
}
Кажется, что точка отказа от меня на самом деле;
return Sets.newHashSet(concat(forNames(annotated, loaders()), forNames(classes, loaders())));
Метод погрузчиков возвращает null. И аннотированные, и классы Iterables заполнены.
Откуда взята колонковая аннотация? Если он написан вами, вы можете показать его код? – rsutormin
Удостоверьтесь, что аннотация столбца имеет политику хранения во время выполнения: http://stackoverflow.com/questions/3107970/how-do-different-retention-policies-affect-my-annotations – rsutormin
Я добавил код примечания Column.class. – cbm64