我有以下课程
public class Person {
...
}
我想创建另一个看起来像这样的类。
@SomeAnnotation
public class Person {
...
}
通过这样的简单方法。
public static Class addAnnotation(Class originalType, Class<? extends Annotation> annotation) {
// what goes here?
}
例如,通过ASM有一种简单的方法吗?我需要什么依赖项。我试过谷歌这个,但我发现的例子要么不完整,要么正在做其他事情。其他框架如javassist也同样好。
答案 0 :(得分:7)
您可以使用javassist项目。
使用javassist,它看起来像这样:
ClassFile cf = ... ;
ConstPool cp = cf.getConstPool();
AnnotationsAttribute attr = new AnnotationsAttribute(cp, AnnotationsAttribute.visibleTag);
Annotation a = new Annotation("Author", cp);
a.addMemberValue("name", new StringMemberValue("Chiba", cp));
attr.setAnnotation(a);
cf.addAttribute(attr);
cf.setVersionToJava5();
希望它有所帮助。 阿列克谢