Я ищу хорошо сохраняемую библиотеку управления байт-кодом Java с интуитивным API. Кажется, существуют довольно многие из них там. Какие-либо предложения на том, которые попробовать?
Лучший ответ на ваш вопрос будет зависеть от ваших конкретных потребностей и целей; если вы сможете подробнее рассказать о том, чего пытаетесь достичь, я, возможно, смогу предложить более индивидуальный ответ.
Однако, по моему опыту, ASM предлагает, вероятно, лучшее сочетание зрелости, гибкости и простоты использования:
Примечание. Комментарий @Yuri, оставленный ниже, описывает ситуацию, с которой я лично еще не сталкивался, но которая потенциально может стать серьезным препятствием. Помните о его наблюдениях / опыте при оценке различных библиотек манипулирования байт-кодом.
Это на самом деле зависит от того, как вы определяете интуитивный ;-) Я начал использовать ASM две недели назад для определенная задача в моем текущем проекте, и это сработало как шарм. Мне потребовалось всего пара часов, чтобы разобраться в нем и научиться его использовать, но я бы не стал называть API интуитивно понятным.Но если вы немного знаете о байт-коде Java и знакомы с шаблоном посетителя, кривая обучения не очень высока, IMO.
Еще одним преимуществом ASM является то, что он явно связан со стандартным API, по крайней мере, в Sun JDK, хотя и в другом пакете (com.sun.xml.internal.ws.org.objectweb.asm и подпакеты).
Посмотрите эту статью : http://www.pabrantes.net/blog/space/start/2008-03-24/1
Немного старая, но все еще актуальная.
ASM и Javassist - самые используемые сейчас. Bcel умирает.