В моем коде я могу определить аннотацию для методов или полей, поэтому я проверяю методы и поля в классе, и все аннотации я сохраняю в отдельном списке.
Потом у меня есть метод getAnnotation.
Annotation getAnnotation(Class annotationClass) {
for (Annotation annotation : annotations) {
if (annotation.getClass().equals(annotationClass)) {
return annotation;
}
}
return null;
}
И я называю это так:
Annotation annotation = getAnnotation(MyAnnotation.class);
Проблема в том, что метод getAnnotation не совпадает с именами классов. Когда я отлаживаю, я вижу, что аннотации отображаются как прокси-объекты. Как я могу найти конкретную аннотацию, которую я хочу в этом случае?
1011 * ТИА *
Я определяю карту так:
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>(4);
Я заполнил Карту так:
Annotation[] annotations = method.getAnnotations();
for (Annotation annotation : annotations) {
annotations.put(annotation.getClass(), annotation);
}