我有以下课程
public class Person {
...
}
我想创建另一个类似这样的类。
@SomeAnnotation
public class Person {
...
}
通过像这样的简单方法。
public static Class addAnnotation(Class originalType, Class<? extends Annotation> annotation) {
// what goes here?
}
例如,有没有一种简单的方法可以通过 ASM 来做到这一点?我需要什么依赖项。我试图用谷歌搜索这个,但是我发现的例子要么不完整,要么正在做其他事情。其他框架(例如 javassist)也同样好。
您可以使用javassist http://www.csg.is.titech.ac.jp/%7Echiba/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();
希望能帮助到你。
阿列克谢
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)