Доступ к аннотированным полям - PullRequest
16 голосов
/ 26 сентября 2010

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

@MyAnnotation int myVariable

У меня есть другой класс, который будет отвечать за выполнение некоторых действий вк значениям переменных. В проекте имеется неопределенное количество классов с аннотациями.Как я могу получить к ним доступ, используя мой процессор аннотаций для доступа к значениям?

Я могу проверить аннотированные переменные, идущие через каждый класс, но не изменяя значение, так как не является объектом.

есть предложения как это сделать?

Заранее спасибо !!:)

1 Ответ

20 голосов
/ 26 сентября 2010
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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...