有什么方法可以给method或者class添加annotation

09-11-21 herseeing

请教各位达人,有什么方法可以给method或者class添加annotation?

我是做自动化测试的,我从测试报告中提取了运行失败了的方法(即测试用例),想用反射机制给这些方法添加failed annotaion

然后只运行带有failed annotation 的方法.

但是我不知道用什么方法可以添加annotation.请达人赐教!谢谢

banq
2009-11-21 14:12

直接加@MyAnnotation在方法上就可以,然后你做一个jar,提取这些带有annotation的方法,然后交给测试环境运行。

herseeing
2009-11-23 10:03

不能用手工去给每个失败的方法加@MyAnnotation,因为失败的方法可能有很多。我是想问有没有什么api或者其他方法把@MyAnnotation自动加到失败的方法前面。

oojdon
2009-11-24 10:30

javassist.bytecode.AnnotationsAttribute;
javassist.bytecode.annotation.Annotation annotation = new javassist.bytecode.annotation.Annotation(annotationType.getName(), attribute.getConstPool());
        for (Map.Entry<String, MemberValue> member : members.entrySet()) {
            annotation.addMemberValue(member.getKey(), member.getValue());
        }
        attribute.addAnnotation(annotation);
<p>