访问带注释的字段

时间:2010-09-26 05:29:52

标签: java reflection annotations

我为我的项目制作了一个自定义注释,该注释仅用于字段,即

@MyAnnotation int myVariable

我有另一个类,它将负责根据变量值执行某些操作。项目具有未确定数量的类,其中包含注释。如何使用我的注释处理器访问它们以访问值?

我可以检查每个类的注释变量,但不能修改该值,因为它不是一个对象。

关于如何做的任何建议?

提前致谢!! :)

1 个答案:

答案 0 :(得分:20)

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