动态地向现有类添加注释

我有以下课程

public class Person { ... } 

我想创建另一个看起来像这样的类。

 @SomeAnnotation public class Person { ... } 

通过这样一个简单的方法。

 public static Class addAnnotation(Class originalType, Class annotation) { // what goes here? } 

例如,通过ASM有一种简单的方法吗? 我需要什么依赖项。 我试过谷歌这个但是我发现的例子要么不完整要么正在做其他事情。 其他框架如javassist也同样好。

您可以使用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(); 

希望能帮助到你。 阿列克谢