我正在寻找一个维护良好的Java字节码操作库,它具有直观的API。那里似乎有很多人。有关哪些尝试的建议?
答案 0 :(得分:6)
您问题的最佳答案将取决于您的具体需求和目标;如果你可以扩展你想要实现的目标,我或许可以提供更具针对性的回应。
然而,根据我的经验,ASM可能是成熟度,灵活性和易用性的最佳组合:
N.B。下面留下的评论@Yuri描述了我个人尚未遇到但可能构成重大障碍的情况。在评估各种字节码操作库时,记住他的观察/经验。
答案 1 :(得分:4)
这实际上取决于你如何定义直观 ;-)两周前我开始使用ASM来完成当前项目的某项任务,它就像一个魅力。它只花了我几个小时来理解它并能够使用它,但我不会直接称之为API。但如果您对Java字节码有一点了解并熟悉访问者模式,那么学习曲线就不是很高,IMO。
ASM的另一个优点是,它显然与标准API捆绑在一起,至少在Sun JDK中,尽管在另一个包中(com.sun.xml.internal.ws.org.objectweb.asm和子包)。 / p>
答案 2 :(得分:3)
看看这篇文章: http://www.pabrantes.net/blog/space/start/2008-03-24/1
有点旧但仍然相关。
ASM和Javassist现在是最常用的。 Bcel正在死去。