Java ASM Посещение метода несколько раз - PullRequest
1 голос
/ 25 февраля 2011

Я работаю во многих классах и трансформирую их.Есть некоторые классы, для которых у меня недостаточно информации, когда я впервые посещаю их, и поэтому мне нужно вернуться к ним.Поскольку во время первого прохода я не знаю, нужно ли мне вернуться к нему, я копирую полный класс с первым проходом модификаций.

Что я хочу знать, так это возможность повторного посещения методаи переписать метод в ClassWriter

byte[] b...
ClassReader cr = new ClassReader(b);
ClassWriter cw = new ClassWriter(read,0);
ClassAdapter ca = new ClassAdapter(cw);//First pass
cr.accept(ca,0);
ClassAdapter ca2 = new ClassAdapter(cw);//Second Pass
cr.accept(ca2,0);

Результат этого кода даст мне ошибки проверки из-за дублирования объявлений поля и метода.

1 Ответ

1 голос
/ 25 февраля 2011

Вы должны инициализировать новый ClassReader, используя новый байт-код, считанный из cw. toByteArray () .Оттуда вы бы повторили другие шаги (новый ClassWriter, новый ClassAdapter и т. Д.)

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