最近开发一个产品,涉及到动态生成class文件,很自然要使用字节码操作工具。一开始使用ASM,参照Helloworld例子做的,生成一个pojo类,最初运行正常,后来由于pojo要继承某个类,生成的时候就来问题了。网上对ASM评价挺高(相比 BCEL 和 SERL 而言),但我觉得和Javassist比起来,易用性还差点。Javassist是日本人写的,现在已成为Jboss的一员。这两个类库的文档我都看了,Javassist在易用性方面更胜一筹,不需要了解class文件的结构,api很简洁,其中唯一让我花了点时间的是String类型。