【发布时间】:2012-05-13 21:41:02
【问题描述】:
在我的代码中,我可能在方法或字段上定义了注释,因此我正在检查类中的方法和字段,并将所有注释存储在单独的列表中。
后来我有一个方法叫做getAnnotation。
Annotation getAnnotation(Class annotationClass) {
for (Annotation annotation : annotations) {
if (annotation.getClass().equals(annotationClass)) {
return annotation;
}
}
return null;
}
我这样称呼它:
Annotation annotation = getAnnotation(MyAnnotation.class);
问题在于 getAnnotation 方法与类名不匹配。当我调试时,我看到注释显示为代理对象。在这种情况下如何找到我想要的特定注释?
TIA
我这样定义地图:
Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>(4);
我这样填充地图:
Annotation[] annotations = method.getAnnotations();
for (Annotation annotation : annotations) {
annotations.put(annotation.getClass(), annotation);
}
【问题讨论】:
标签: java reflection annotations