我做了一个自定义的注释为我的项目,该项目将只与领域中使用,这是访问注释字段
@MyAnnotation int myVariable
我有另一个类将负责根据变量执行某些动作值。该项目有不确定数量的课程,包括注释。我如何使用我的注释处理器访问它们以访问这些值?
我可以检查通过每个类的注释变量,但不会修改该值,因为它不是一个对象。
有关如何做的建议?
在此先感谢! :)
我做了一个自定义的注释为我的项目,该项目将只与领域中使用,这是访问注释字段
@MyAnnotation int myVariable
我有另一个类将负责根据变量执行某些动作值。该项目有不确定数量的课程,包括注释。我如何使用我的注释处理器访问它们以访问这些值?
我可以检查通过每个类的注释变量,但不会修改该值,因为它不是一个对象。
有关如何做的建议?
在此先感谢! :)
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;
}
适用于查找字段,但有时注释位于存取器方法上。 – cosbor11 2015-09-14 22:01:54
私人领域呢?我相信这是行不通的... – 2016-01-15 07:48:13
Remi D:私人领域不是问题,你只需要调用field.setAccessible(true); – 2016-02-22 09:05:39
我还发现一个[链接](http://stackoverflow.com/questions/13875029/how-do-i-get-all-fields-and-properties-of-an-object-这是与您的问题类似 – Fritz 2014-06-18 06:11:15
我以前接受的答案列出仍然可用(在撰写本评论时)文章标题为“[如何注释工作](http://www.objectpartners.com/2010/08/06 /怎么办的注解工作/)”。 – 2015-12-03 18:54:01