Доступ к аннотированным полям

Я сделал пользовательскую аннотацию для моего проекта, которая будет использоваться только с полями, то есть

@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;
}