Доступ к аннотированным полям
Я сделал пользовательскую аннотацию для моего проекта, которая будет использоваться только с полями, то есть
@MyAnnotation int myVariable
У меня есть еще один класс, который будет отвечать за выполнение некоторых действий в соответствии со значениями переменных. Проект имеет неопределенное количество классов с включенными аннотациями. Как я могу получить к ним доступ с помощью моего процессора аннотаций для доступа к значениям?
Я могу проверить аннотированные переменные, идущие, хотя каждый класс, но не изменяя значение, поскольку это не объект.
любое предложение о том, как это сделать?
Спасибо заранее!:)
Ответы
Ответ 1
int getMyVariable(Foo foo) throws IllegalArgumentException, IllegalAccessException{
for(Field f:foo.getClass().getDeclaredFields()){
/**
* Ensure the RetentionPolicy of 'MyAnnotation' is RUNTIME.
*/
if(f.isAnnotationPresent(MyAnnotation.class)){
return f.getInt(foo);
}
}
return -1;
}