ASM
http://asm.objectweb.org/
它比BCEL快得多,并且支持泛型和注释。关于其体系结构的一点是:为了确保高性能,ASM是围绕引发事件的解析器构建的(与解析器构建数据结构的BCEL相反)。这有点类似于SAX和DOM解析器之间的区别。需要一些练习才能习惯这种思维。
编辑(遵循McDowell的评论):确实,访问者在ASM中使用率很高,但它比普通访问者要多:解析器懒惰地构建了访问的数据结构,因此,如果您对类文件的某些部分不感兴趣(例如,如果您想知道方法的名称,但不必关心它们的主体),则可以从visitMethod()方法返回null。这将使解析器跳过方法主体部分,从而防止完全描述该方法的对象网的(昂贵)构造。



