Какой API ASM я должен использовать? - PullRequest
1 голос
/ 26 февраля 2012

Я недавно задал этот вопрос: Лучший выбор? Отредактируйте байт-код (asm) или отредактируйте файл Java перед компиляцией

Я решил использовать ASM.

Теперь, читая документацию, я заметил, что ASM предоставляет 2 API (на основе событий и объектов)

Какой API мне наиболее подходит для моей проблемы?

Я думаю, что на основе событий. Потому что я хочу найти каждое сравнение / конкретную операцию

Каково ваше мнение?

1 Ответ

2 голосов
/ 26 февраля 2012

Это полностью зависит от типа преобразования, которое вы хотите сделать. Если ваше преобразование должно воздействовать только на определенные байт-коды одним методом и вставлять код до или после этого байт-кода, тогда API-интерфейс на основе событий очень прост в использовании.

API на основе дерева пригодится, когда вам нужна информация о других методах в классе или если вам нужно больше контекста вокруг байт-кода, который вы хотите изменить.

Редактировать: также возможно объединить оба подхода, сначала построить древовидную структуру и определить некоторую информацию о классе, а затем преобразовать этот узел дерева, используя API на основе событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...